remove Dish of the Nation from design spec, scoring config

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 21:37:26 +01:00
parent 38a0c9f55a
commit 4e06930796
2 changed files with 3 additions and 29 deletions

View File

@@ -7,7 +7,7 @@
## Goal
A web-based party companion for a group of 5-10 people watching the Eurovision Song Contest together. One host device drives a shared display (TV/projector); all other players join on their phones via a room code. Three acts guide the group through five games across the evening, with all scores feeding into one shared leaderboard.
A web-based party companion for a group of 5-10 people watching the Eurovision Song Contest together. One host device drives a shared display (TV/projector); all other players join on their phones via a room code. Three acts guide the group through four games across the evening, with all scores feeding into one shared leaderboard.
---
@@ -106,14 +106,11 @@ JSON messages with a `type` field discriminator.
| `reconnect` | roomCode, sessionId | Reconnecting |
| `advance_act` | — | Host advances to next act |
| `end_room` | — | Host ends the party |
| `add_dish` | name, correctCountry | Host adds a dish (Act 1) |
| `reveal_dishes` | — | Host reveals dish answers |
| `submit_prediction` | winner, top3[], nulPoints | Player submits predictions |
| `open_jury_vote` | countryCode | Host opens voting for a country |
| `close_jury_vote` | — | Host closes current voting window |
| `submit_jury_vote` | countryCode, rating (1-12) | Player rates an act |
| `tap_bingo_square` | tropeId | Player taps a bingo square |
| `submit_dish_guess` | dishId, guessedCountry | Player guesses a dish's country |
| `start_quiz` | — | Host starts quiz round |
| `next_question` | — | Host advances to next question |
| `buzz_quiz` | — | Player buzzes in |
@@ -134,7 +131,6 @@ JSON messages with a `type` field discriminator.
| `jury_reveal` | "12 points go to..." data | Dramatic reveal on display |
| `bingo_update` | playerId, square tapped | Someone taps a square |
| `bingo_announced` | playerId, displayName | Someone got bingo |
| `dishes_updated` | dish list | Host adds/reveals dishes |
| `quiz_question` | question, options, difficulty | Next quiz question shown |
| `quiz_buzz` | playerId, displayName | Someone buzzed |
| `quiz_result` | playerId, correct, points | Answer judged |
@@ -154,13 +150,6 @@ JSON messages with a `type` field discriminator.
- Scores are hidden until the final leaderboard reveal in Act 3.
- Country selection from the hardcoded ESC 2026 lineup.
### Dish of the Nation (lobby + Act 1)
- Host adds dishes via the Host tab as people arrive (name + correct country). This can start during the lobby phase and continue into Act 1.
- Players see the list of dishes and submit a country guess per dish.
- Host triggers reveal before Act 2 — display shows each dish with the correct country and who guessed right.
- Low-stakes icebreaker.
### Live Jury Voting (Act 2)
- Host taps "Open Voting" after each country's performance.
@@ -189,7 +178,7 @@ JSON messages with a `type` field discriminator.
### Shared Leaderboard
- All five games contribute to one total score per player.
- All four games contribute to one total score per player.
- Leaderboard visible on the display throughout the evening, updated after each scoring event.
- Prediction scores are hidden until the final reveal — the leaderboard shows "??? pts" for predictions until Act 3 ends.
- Final reveal: display shows a dramatic countdown/animation revealing prediction scores and the final standings.
@@ -211,7 +200,6 @@ All values in `packages/server/data/scoring.json`, editable without code changes
"quiz_easy": 5,
"quiz_medium": 10,
"quiz_hard": 15,
"dish_correct": 5
}
```
@@ -279,19 +267,6 @@ PostgreSQL via Drizzle ORM. Lightweight — most queries are "get everything for
- `room_id` (FK → rooms)
- `squares` (jsonb, positionally ordered array of { tropeId, tapped } — index 0-15 maps left-to-right, top-to-bottom on the 4×4 grid)
**dishes**
- `id` (uuid, PK)
- `room_id` (FK → rooms)
- `name` (varchar)
- `correct_country` (varchar)
- `revealed` (boolean)
**dish_guesses**
- `id` (uuid, PK)
- `player_id` (FK → players)
- `dish_id` (FK → dishes)
- `guessed_country` (varchar)
**quiz_rounds**
- `id` (uuid, PK)
- `room_id` (FK → rooms)

View File

@@ -7,6 +7,5 @@
"bingo_full_bonus": 10,
"quiz_easy": 5,
"quiz_medium": 10,
"quiz_hard": 15,
"dish_correct": 5
"quiz_hard": 15
}