Add game category and region metadata for genlocke presets

Add `category` field (original/remake/enhanced/sequel/spinoff) to the
Game model and tag all 38 games. Create regions.json with generation
mapping, ordering, and genlocke preset defaults per region. Add
GET /games/by-region endpoint returning games grouped by region.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Julian Tabel
2026-02-09 09:06:15 +01:00
parent dab0cf986f
commit aaaeb2146e
9 changed files with 237 additions and 9 deletions

View File

@@ -1,11 +1,11 @@
---
# nuzlocke-tracker-glh8
title: Gather generation metadata (games, regions)
status: todo
status: in-progress
type: task
priority: normal
created_at: 2026-02-08T19:20:49Z
updated_at: 2026-02-09T07:45:21Z
updated_at: 2026-02-09T08:05:52Z
parent: nuzlocke-tracker-25mh
blocking:
- nuzlocke-tracker-kz5g
@@ -27,11 +27,17 @@ Collect and store metadata about each Pokemon generation to support genlocke fea
- However, a dedicated generations reference would be useful for UI purposes (showing all generations even if not all games are seeded yet)
- Check if `backend/src/app/seeds/data/generations.json` already exists or if this needs to be created from scratch
## Decisions
- Legends games (Hisui, Lumiose) are excluded from genlocke presets — available via Custom only
- Black 2/White 2 are grouped with Black/White in the same Unova slot (category: sequel)
- Normal Genlocke defaults use best mainline remake: FireRed, HeartGold, Alpha Sapphire, Platinum, Ultra Sun
- Metadata stored as `category` field on Game model + standalone `regions.json` seed file
## Checklist
- [ ] Define the generation-to-region mapping (Gen 1 = Kanto, Gen 2 = Johto, ..., Gen 9 = Paldea)
- [ ] Determine how to group games by region (use `region` field on existing Game model, or create a dedicated lookup)
- [ ] Create a `generations.json` seed file (or equivalent) with: generation number, region name, region order, and which games belong to each region
- [ ] Categorize each game as "original", "remake", or "enhanced" so presets can filter appropriately
- [ ] Define which game is the "default" pick per region for the Normal Genlocke preset (e.g., FireRed for Kanto, HeartGold for Johto)
- [ ] Add an API endpoint or extend the games endpoint to return games grouped by region with generation metadata
- [ ] Verify all seeded games are correctly tagged with their region
- [x] Define the generation-to-region mapping (Gen 1 = Kanto, Gen 2 = Johto, ..., Gen 9 = Paldea)
- [x] Determine how to group games by region (use `region` field on existing Game model, or create a dedicated lookup)
- [x] Create a `regions.json` seed file (or equivalent) with: generation number, region name, region order, and which games belong to each region
- [x] Categorize each game as "original", "remake", "enhanced", "sequel", or "spinoff" so presets can filter appropriately
- [x] Define which game is the "default" pick per region for the Normal Genlocke preset (e.g., FireRed for Kanto, HeartGold for Johto)
- [x] Add an API endpoint or extend the games endpoint to return games grouped by region with generation metadata
- [x] Verify all seeded games are correctly tagged with their region