[Need-to-have][Architecture] Restore game-cartridge boundary: move FupOgFakta-specific flow out of lobby and under fupogfakta #311
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent epic: #287
Problem statement
The implementation has drifted away from the intended game-cartridge architecture. Right now, FupOgFakta-specific gameplay flow lives primarily in
lobby/endpoints and views, whilefupogfakta/mostly contains models/admin. That means the so-called platform layer currently owns concretelie -> guess -> reveal -> scoreboardbehaviour.This is a problem even for MVP:
lobbyis no longer a generic session/platform layerThis also appears to violate the intended architecture described in:
docs/plans/2026-03-09-fupogfakta-game-engine-design.mddocs/plans/2026-03-09-fupogfakta-implementation-plan.mdBoth documents describe
lobby/as platform/session layer andfupogfakta/as the first self-contained game cartridge that owns its phase logic.Expected value / why now
We are now close enough to a playable build that continuing to add more gameplay-specific logic in
lobby/will make the eventual separation harder and risk locking the MVP into the wrong shape.Fixing the ownership boundary now provides:
Acceptance criteria
lobby(platform/session shell) andfupogfakta(game cartridge / game engine).lobby/are FupOgFakta-specific and should move.lobby/and underfupogfakta/(or an explicit game-cartridge layer) without breaking the current playable path.lobby: session container, join/create, host/player shell entry, generic session metadata, and routing into a game cartridge.lobby.Scope boundary
Suggested decomposition
lobbyintofupogfaktalobbybecomes a shell/orchestrator instead of the concrete game engineArchitect decomposition for the cartridge-boundary fix:
These child tasks are intended to keep the refactor concrete and tied back to the originally documented cartridge/game-driver architecture.
Architect fast-progress wave added for immediate pickup:
These are intentionally small, mergeable slices aimed at reducing coupling and speeding up current gameplay/architecture progress.