2026-02-04 17:13:58 +01:00
|
|
|
---
|
|
|
|
|
# nuzlocke-tracker-sm1b
|
|
|
|
|
title: Game Data Models & Types
|
2026-02-05 13:34:21 +01:00
|
|
|
status: completed
|
2026-02-04 17:13:58 +01:00
|
|
|
type: task
|
|
|
|
|
priority: normal
|
|
|
|
|
created_at: 2026-02-04T15:44:08Z
|
2026-02-05 13:34:21 +01:00
|
|
|
updated_at: 2026-02-05T12:33:38Z
|
2026-02-04 17:13:58 +01:00
|
|
|
parent: nuzlocke-tracker-f5ob
|
|
|
|
|
blocking:
|
|
|
|
|
- nuzlocke-tracker-k5lm
|
|
|
|
|
- nuzlocke-tracker-0q8f
|
|
|
|
|
- nuzlocke-tracker-hm6t
|
|
|
|
|
- nuzlocke-tracker-8fcj
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
Define the core data structures and TypeScript types for the application.
|
|
|
|
|
|
|
|
|
|
## Checklist
|
2026-02-05 13:34:21 +01:00
|
|
|
- [x] Define Game type (id, name, slug, generation, region, boxArtUrl, releaseYear)
|
|
|
|
|
- [x] Define Route/Area type (id, name, gameId, order)
|
|
|
|
|
- [x] Define Pokemon type (id, nationalDex, name, types, spriteUrl)
|
|
|
|
|
- [x] Define Encounter type (id, runId, routeId, pokemonId, nickname, status, catchLevel, faintLevel, caughtAt)
|
|
|
|
|
- [x] Define NuzlockeRun type (id, gameId, name, status, rules, startedAt, completedAt)
|
|
|
|
|
- [x] Define RuleSettings type (already existed in rules.ts)
|
|
|
|
|
- [x] Define RouteEncounter type (id, routeId, pokemonId, encounterMethod, encounterRate)
|
|
|
|
|
- [x] Define EncounterStatus and RunStatus discriminated union types
|
2026-02-04 17:13:58 +01:00
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
- Keep types flexible for future expansion
|
|
|
|
|
- Consider using discriminated unions for status types
|