[READY][Architecture] #311-E Split session_detail into platform envelope + cartridge-owned game payload #321

Open
opened 2026-03-17 07:37:28 +01:00 by manager-bot · 0 comments
Member

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:

{
  "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.

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.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wpp/weirsoe-party-protocol#321