session_detail er stadig blandet mellem platform-shell og FupOgFakta-specifik game payload. Det gør extraction dyrere, fordi platform- og cartridge-ansvar stadig lækker ind i samme response-kontrakt.
Goal
Gør session_detail til en tydelig platform envelope, hvor game-specifik payload lever bag cartridge-owned builders/services.
Scope
In scope:
split mellem platform-owned felter og FupOgFakta-owned felter
delegation af game payload ud af lobby/
kontrakt-tests for den nye shape
Out of scope:
komplet gameplay endpoint-flytning
større routing-cutover
nye gameplay-regler
Acceptance criteria
session_detail returnerer en tydelig platform envelope for session + players
FupOgFakta-specifikke felter (round_question, reveal, scoreboard, game phase payload) bygges via cartridge-owned kode
ingen ny game-specifik payload-shaping introduceres i lobby/views.py
host/player tests låser den nye kontrakt og refresh-forventninger efter fase-events
artifact/dokumentation opdateres hvis response-shape ændres synligt
Det er ikke et hårdt krav, men boundary skal være eksplicit.
Why this matters
Denne issue reducerer konfliktfladen mellem #311 extraction-sporet og #287 contract-sporet, fordi den gør det klart hvad platformen ejer, og hvad cartridgen ejer.
Parent: #311
Related: #312, #316, #317
## Problem
`session_detail` er stadig blandet mellem platform-shell og FupOgFakta-specifik game payload. Det gør extraction dyrere, fordi platform- og cartridge-ansvar stadig lækker ind i samme response-kontrakt.
## Goal
Gør `session_detail` til en tydelig platform envelope, hvor game-specifik payload lever bag cartridge-owned builders/services.
## Scope
In scope:
- split mellem platform-owned felter og FupOgFakta-owned felter
- delegation af game payload ud af `lobby/`
- kontrakt-tests for den nye shape
Out of scope:
- komplet gameplay endpoint-flytning
- større routing-cutover
- nye gameplay-regler
## Acceptance criteria
- `session_detail` returnerer en tydelig platform envelope for `session` + `players`
- FupOgFakta-specifikke felter (`round_question`, `reveal`, `scoreboard`, game phase payload) bygges via cartridge-owned kode
- ingen ny game-specifik payload-shaping introduceres i `lobby/views.py`
- host/player tests låser den nye kontrakt og refresh-forventninger efter fase-events
- artifact/dokumentation opdateres hvis response-shape ændres synligt
## Suggested implementation shape
Eksempel på målretning:
```json
{
"session": {...},
"players": [...],
"game": {
"phase": "...",
"payload": {...}
}
}
```
Det er ikke et hårdt krav, men boundary skal være eksplicit.
## Why this matters
Denne issue reducerer konfliktfladen mellem #311 extraction-sporet og #287 contract-sporet, fordi den gør det klart hvad platformen ejer, og hvad cartridgen ejer.
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: #311
Related: #312, #316, #317
Problem
session_detailer stadig blandet mellem platform-shell og FupOgFakta-specifik game payload. Det gør extraction dyrere, fordi platform- og cartridge-ansvar stadig lækker ind i samme response-kontrakt.Goal
Gør
session_detailtil en tydelig platform envelope, hvor game-specifik payload lever bag cartridge-owned builders/services.Scope
In scope:
lobby/Out of scope:
Acceptance criteria
session_detailreturnerer en tydelig platform envelope forsession+playersround_question,reveal,scoreboard, game phase payload) bygges via cartridge-owned kodelobby/views.pySuggested implementation shape
Eksempel på målretning:
Det er ikke et hårdt krav, men boundary skal være eksplicit.
Why this matters
Denne issue reducerer konfliktfladen mellem #311 extraction-sporet og #287 contract-sporet, fordi den gør det klart hvad platformen ejer, og hvad cartridgen ejer.