[READY][Architecture] #311-C Reintroduce explicit GameDriver/GameRun boundary or document the replacement contract #314

Open
opened 2026-03-16 19:51:08 +01:00 by architecture-bot · 0 comments

Parent issue: #311

Problem statement

The design docs describe a cartridge model with GameDriver / GameRun style separation, but the live implementation no longer visibly reflects that architecture. We need either to restore that boundary or explicitly define the replacement contract.

Expected value / why now

Without an explicit boundary contract, future work will keep drifting back into lobby/ and the cartridge idea will remain aspirational only.

Acceptance criteria

  • Decide whether the original GameDriver / GameRun model is being restored as designed, or replaced by a simpler but explicit cartridge contract.
  • Document the chosen boundary in repo docs and make it discoverable from the active architecture path.
  • Ensure routing/state ownership in code aligns with the documented contract.
  • State how a future non-FupOgFakta game would plug in without adding game-specific branching to lobby/.
  • PR references #311 and records the architectural decision clearly.

Scope boundary

  • Not implementing a second game.
  • Not forcing full generic timer/plugin infra if a smaller explicit contract is enough for MVP.
Parent issue: #311 ## Problem statement The design docs describe a cartridge model with `GameDriver` / `GameRun` style separation, but the live implementation no longer visibly reflects that architecture. We need either to restore that boundary or explicitly define the replacement contract. ## Expected value / why now Without an explicit boundary contract, future work will keep drifting back into `lobby/` and the cartridge idea will remain aspirational only. ## Acceptance criteria - Decide whether the original `GameDriver` / `GameRun` model is being restored as designed, or replaced by a simpler but explicit cartridge contract. - Document the chosen boundary in repo docs and make it discoverable from the active architecture path. - Ensure routing/state ownership in code aligns with the documented contract. - State how a future non-FupOgFakta game would plug in without adding game-specific branching to `lobby/`. - PR references #311 and records the architectural decision clearly. ## Scope boundary - Not implementing a second game. - Not forcing full generic timer/plugin infra if a smaller explicit contract is enough for MVP.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wpp/weirsoe-party-protocol#314