diff --git a/docs/superpowers/specs/2026-04-01-game-config-panel-design.md b/docs/superpowers/specs/2026-04-01-game-config-panel-design.md new file mode 100644 index 0000000..a236655 --- /dev/null +++ b/docs/superpowers/specs/2026-04-01-game-config-panel-design.md @@ -0,0 +1,119 @@ +# Game Configuration Panel + +## Summary + +Add a configuration panel above the "Commencer une partie" button on the homepage, allowing players to customize game generation parameters before starting. + +## Parameters + +### Films vus (toggle on/off) + +- **Visible only** for authenticated users +- Default: off +- When enabled: all actors in the grid (main actor + hint actors) must appear in at least one film marked as watched by the user +- When disabled: no filtering, any actor can appear + +### Paramètres des indices (checkboxes) + +Three checkboxes controlling which hint types can appear in the grid: + +- **Film** (default: checked) — hint shows a film the actor appeared in +- **Rôle** (default: checked) — hint shows a character name the actor played +- **Récompense** (default: checked) — hint shows an award the actor received + +**Constraint:** at least one must remain checked. The UI prevents unchecking the last one. + +### Récompenses (multi-select checkboxes) + +- **Visible only** when "Récompense" is checked +- Lists all `AwardType` entities that have 5+ distinct actors in the database +- A "Toutes les récompenses" option at the top that toggles all +- Default: all checked (= "Toutes" checked) +- Unchecking an individual item unchecks "Toutes"; rechecking all rechecks "Toutes" +- Selected AwardType IDs are sent as `award_types[]` in the form POST + +## UI Layout + +``` +┌─────────────────────────────────┐ +│ Films vus [ toggle ] │ ← auth users only +├─────────────────────────────────┤ +│ Paramètres des indices │ +│ │ +│ ☑ Film ☑ Rôle ☑ Récompense│ +│ │ +│ Récompenses : │ ← visible if Récompense checked +│ ┌───────────────────────┐ │ +│ │ ☑ Toutes les récomp. │ │ +│ │ ☑ Academy Awards │ │ +│ │ ☑ Golden Globes │ │ +│ │ ☑ César │ │ +│ │ ... │ │ +│ └───────────────────────┘ │ +├─────────────────────────────────┤ +│ [ Commencer une partie ] │ +│ │ +│ Connectez-vous pour importer...│ +└─────────────────────────────────┘ +``` + +## Form Fields + +All parameters are fields within the existing start game `