An opening book: positions with the ECO code, English name and continuations the
table assigns them. The data is compiled out of the game by
tools/compile-openings.mjs from the vendored lichess tables (data/openings/,
CC0), so the framework ships this probe logic and no table: a book big enough to
matter would blow the bundle budget if it rode along.
Positions are keyed by positionKey: placement, side to move, castling rights and
en passant square, no clocks. Moves ride as UCI strings (e2e4, e7e8q), which
survive JSON untouched; parseUciMove turns one back into a ChessMove.
An opening book: positions with the ECO code, English name and continuations the table assigns them. The data is compiled out of the game by
tools/compile-openings.mjsfrom the vendored lichess tables (data/openings/, CC0), so the framework ships this probe logic and no table: a book big enough to matter would blow the bundle budget if it rode along.Positions are keyed by
positionKey: placement, side to move, castling rights and en passant square, no clocks. Moves ride as UCI strings (e2e4,e7e8q), which survive JSON untouched;parseUciMoveturns one back into aChessMove.