Repository navigation
Timeline and move navigation
- Add ChessCore.GameTimeline for validated linear history, cached SAN records, independent game reconstruction at any ply, atomic append, and explicit continuation replacement.
- Add caller-controlled ChessMoveNavigationView with start, previous, next, and line-end controls, accessible state, and opt-in keyboard shortcuts.
- Add ChessBoardModel.setGame(_:) to display an isolated full-game copy while retaining board preferences and clearing transient interaction state.
- Add selected-move scrolling and accessibility selection to both move-list layouts. Existing initializers retain their latest-move behavior.
- Integrate editable timeline navigation into the ChessWorkbench example. SwiftChessDemo 1.6.0 demonstrates read-only live-game history in both gameplay modes.
- Fix three-digit move-number wrapping and make the full padded move-label area tappable.
Compatibility and validation
Existing board, game, replay, and move-list APIs remain compatible. Apps retain selection, editing, game-outcome, and engine policy.
The full local gate passed: 370 package tests, 22 iPhone UI tests, 26 Mac UI tests, a Release build, the ChessCore recipe smoke test, and API compatibility checks against v1.3.0. Owner review passed on Mac, physical iPhone/iPad, accessibility/layout, and documentation.
This is a source-only release; no prebuilt artifacts are attached.