The current implementation places concrete lie -> guess -> reveal -> scoreboard behaviour in lobby/. That means the platform layer currently behaves like the FupOgFakta engine.
Expected value / why now
This restores the intended cartridge boundary so FupOgFakta owns its own rules, transitions, and game-specific state handling.
Acceptance criteria
Move FupOgFakta-specific phase/state logic out of lobby/ into fupogfakta/ (or an explicit game-cartridge layer under that app).
Keep lobby/ limited to generic session/container concerns and routing/orchestration into the game layer.
Preserve the existing playable loop while changing ownership.
Update tests to prove canonical round flow still works after the move.
PR references #311 and explicitly states what ownership changed.
Scope boundary
Not a full plugin ecosystem.
Not multi-game UI features.
Not an excuse to redesign game rules at the same time.
Parent issue: #311
## Problem statement
The current implementation places concrete `lie -> guess -> reveal -> scoreboard` behaviour in `lobby/`. That means the platform layer currently behaves like the FupOgFakta engine.
## Expected value / why now
This restores the intended cartridge boundary so FupOgFakta owns its own rules, transitions, and game-specific state handling.
## Acceptance criteria
- Move FupOgFakta-specific phase/state logic out of `lobby/` into `fupogfakta/` (or an explicit game-cartridge layer under that app).
- Keep `lobby/` limited to generic session/container concerns and routing/orchestration into the game layer.
- Preserve the existing playable loop while changing ownership.
- Update tests to prove canonical round flow still works after the move.
- PR references #311 and explicitly states what ownership changed.
## Scope boundary
- Not a full plugin ecosystem.
- Not multi-game UI features.
- Not an excuse to redesign game rules at the same time.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent issue: #311
Problem statement
The current implementation places concrete
lie -> guess -> reveal -> scoreboardbehaviour inlobby/. That means the platform layer currently behaves like the FupOgFakta engine.Expected value / why now
This restores the intended cartridge boundary so FupOgFakta owns its own rules, transitions, and game-specific state handling.
Acceptance criteria
lobby/intofupogfakta/(or an explicit game-cartridge layer under that app).lobby/limited to generic session/container concerns and routing/orchestration into the game layer.Scope boundary