Chess engine scaffolding focused on board representation, move generation, and move application. This project intentionally excludes search, evaluation, or game-playing logic.
- Core: Engine facade and engine contracts
- Board: Board representation and state metadata
- Moves: Move data structures, generator contracts, applier contracts
- IO: Position serialization (FEN placeholder)
- Utils: Shared utility helpers
The board is represented as a 64-square array with a separate BoardState
structure that stores side-to-move, castling rights, en passant targets, and
move counters. This mirrors the common c-chess-cli split between piece placement
and state metadata while keeping the representation interchangeable.