Skip to content

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