Appearance
Game engine
The game engine must be testable without hardware. It consumes game commands and global board positions, never ADC values, I²C addresses, or local sensor numbers.
text
GameState
├── players and turn
├── board, roads, settlements, cities
├── resources and bank
├── robber
├── development cards
└── victory points and longest roadCommand flow
Commands should be evaluated against the authoritative state. Invalid actions leave it unchanged. Repeated client requests need an eventual deduplication strategy so a network retry cannot buy the same item twice.
Rules to model
The engine will cover road placement, settlement placement, city upgrades, resource production after a dice roll, robber movement and choices, discards, trading, development cards, longest road, victory points, and turn progression. Setup and end-of-game behavior also need explicit rule coverage.
Ruleset details and product positioning remain open; this page does not reproduce a complete rulebook. The first implementation should use deterministic fixtures to test placement legality, production, bank changes, turn restrictions, and rejected commands without connecting a board.
Physical interaction
The expected piece layout is derived from game state. Reconciliation explains differences from the physical observations; it must not silently rewrite authoritative state just because a piece was moved.
Execution location, implementation language, persistence, undo/recovery policy, and exact command schemas remain TBD. See software architecture.