Architecture decision records¶
Short records of decisions that are hard to reverse, surprising without context, and the result of a real
trade-off. Read the ones touching an area before changing it; supersede an ADR with a new one rather than
editing its decision. Domain vocabulary comes from CONTEXT.md at the repo root.
| ADR | Decision |
|---|---|
| 0001 | Server-authoritative simulation with client-side XZ prediction |
| 0002 | Rules run by both client and server live in core |
| 0003 | Binary protocol with a generated codec registry |
| 0004 | Test worlds are hosted inside the running server process |
| 0005 | The server routes Mini-games but never knows their rules |
| 0006 | In-game permissions belong to the Character, admin access to the Account |
| 0007 | Groups and Mini-game Rooms live in memory only |
| 0008 | Web client: Kotlin/Wasm for the game, BabylonJS for 3D, React for the UI |
| 0009 | Layered YAML configuration: bundled defaults, data overrides |
| 0010 | Wild NPCs spawn from a derived per-Region Roster and budget; Quests follow the Roster |
| 0011 | The LLM only voices NPC chat; Disposition and Barks never depend on it |
| 0012 | Every World is assembled by one builder; Koin holds only process-level services |
| 0013 | Dodge and Magic resistance apply to every Character, not only under a Protection |