![]() |
Kirin v0.2.3-4-g1d04d94-dirty
Autonomous chess — engine and hardware API reference
|
Generated symbol-level reference for the C++ sources under kirin/src — the canonical Kirin chess engine and the hardware layer the robot ships.
| If you want to… | Go to |
|---|---|
| Understand search, evaluation, or move generation | Chess engine (kirin_engine) |
| Work on motion, sensing, or the physical board | Hardware layer (kirin_hardware) |
| Follow a game, puzzle, or review session | Application layer |
| See how a run mode is selected | Command-line entry point |
The engine reasons about piece types — it knows a black knight is on d5. The physical board needs piece identity, because a captured piece has to be driven to its own labelled storage slot, and two knights are not interchangeable once one of them is in a slot.
PieceTracker is where those two worlds reconcile. If you are touching capture handling, storage routing, or path planning and something seems to have one fact too few, this is almost always why.
kirin_engine has no hardware dependencies and builds and tests standalone; kirin_hardware depends on it, never the reverse. CMake enforces this at link time, and CI builds the engine on a machine with no board attached. Keeping that boundary clean is what lets the same engine run in the product, on the lichess bot, and under ctest.
Each source file's header comment becomes that file's page, so the prose you find under Files is the same text in the source — there is no second copy to drift. Adding a new file means writing a @file block; CI fails the docs build if one is missing.