1.8 KiB
1.8 KiB
Issue #287 — Canonical round-flow backend artifact
State-transition matrix
| Trigger | From | To | Server-owned effect |
|---|---|---|---|
POST /lobby/sessions/{code}/rounds/start |
lobby |
lie |
Opretter RoundConfig, vælger/låser konkret RoundQuestion, eksponerer prompt + lie-deadline i samme svar |
Sidste gyldige submit_lie for aktivt spørgsmål |
lie |
guess |
Dedupe/shuffle correct_answer + lies, persisterer mixed_answers, broadcaster phase.guess_started |
Sidste gyldige submit_guess for aktivt spørgsmål |
guess |
reveal |
Beregner score deterministisk, persisterer ScoreEvent + opdaterede Player.score, returnerer canonical reveal payload |
Første canonical state-read efter resolved reveal (session_detail, og idempotent GET /scoreboard hvis state allerede er resolved) |
reveal |
scoreboard |
Promoverer scoreboard som state, broadcaster phase.scoreboard, eksponerer leaderboard + readiness |
POST /lobby/sessions/{code}/next |
scoreboard |
lie |
Increment round counter, kopierer seneste RoundConfig, vælger/låser næste spørgsmål i samme kategori og broadcaster phase.lie_started |
POST /lobby/sessions/{code}/finish |
scoreboard |
finished |
Fryser slutresultat og returnerer final leaderboard |
Flow-log (happy path)
- Host starter runde med kategori.
- Server vælger straks spørgsmål og går i
lie. - Spillere sender løgne; sidste submission auto-advancer til
guess. - Spillere sender gæt; sidste submission auto-advancer til
revealog scorer runden. - Næste canonical state-read promoverer resolved reveal til
scoreboard; state findes uden separat debug-knap. - Host kan nu kun vælge
next roundellerfinish game. next roundstarter næste runde direkte iliemed nyt konkret spørgsmål; ingen mellem-hop tilbage tillobby.