Skip to content

Board events

Board events describe stable observations after local filtering and global position mapping. They are separate from game-engine domain events: ROAD_PLACED reports a physical change, not a legal purchase.

EventMeaning
ROAD_PLACEDA road is now identified at a previously empty road position
ROAD_REMOVEDA known road position is now stably empty
BUILDING_PLACEDA building is now identified at a previously empty intersection
BUILDING_REMOVEDA known building position is now stably empty
BUILDING_CHANGEDThe stable building identity/type changed
LAND_CHANGEDA land reading changed
ROBBER_PLACED / ROBBER_REMOVEDA stable robber contact changed
HEX_CONNECTED / HEX_DISCONNECTEDDevice availability changed

These are candidate semantic names. Payloads, ordering, timestamps, and schema versions have not been finalized. Replacement by a different road owner and transitions involving unknown readings need explicit semantics before implementation.

An eventual event envelope should preserve source, position, previous observation, and new observation. Sequence or revision information will be needed to detect missed updates and duplicate delivery; no field sizes are assigned here.

On reconnect, request a fresh snapshot before treating differences as placements or removals. Communication failures are availability changes, not empty sensors. See Hex Manager.