Data model
Set guides
Per-set mechanics, themes and Limited archetypes, parsed from the MTG Fandom wiki.
11 columns. Every value below is generated from the provenance registry.
| Field | Type | Source | Updated | Written by |
|---|---|---|---|---|
| set_code | string | wiki | on demand | scripts/seed-set-guides.ts |
| Set this guide describes (FK → sets.code). Primary key. | ||||
| mechanics | Json | wiki | on demand | scripts/seed-set-guides.ts |
| Mechanics and keywords introduced or returning in the set, parsed from the wiki infobox. | ||||
| themes | Json | wiki | on demand | scripts/seed-set-guides.ts |
| Set themes, parsed from the wiki page. | ||||
| archetypes | Json | wiki | on demand | scripts/seed-set-guides.ts |
| Limited archetypes with their colour pairs, parsed from the wiki's archetype section. | ||||
| blurb | string | null | ai | on demand | scripts/seed-set-guides.ts (blurb) |
| Short set summary written by Haiku, grounded in the parsed page. Falls back to model knowledge when no page resolves, so read it as orientation rather than fact. | ||||
| wiki_url | string | null | wiki | on demand | scripts/seed-set-guides.ts |
| Fandom wiki page, stored only once the title is verified to resolve. | ||||
| wotc_url | string | null | wiki | on demand | scripts/seed-set-guides.ts |
| Official Wizards set page, where one is known. | ||||
| slug_override | string | null | user | on demand | manual |
| Wiki page title to use when the one derived from the set name resolves to the wrong page. | ||||
| parsed_at | string | null | calculated | on demand | database |
| When the wiki page was last parsed. | ||||
| created_at | string | calculated | never | database |
| Row creation timestamp. | ||||
| updated_at | string | calculated | on write | database |
| Row update timestamp. | ||||
TypeScript model
interface set_guides {
set_code: string
mechanics: Json
themes: Json
archetypes: Json
blurb: string | null
wiki_url: string | null
wotc_url: string | null
slug_override: string | null
parsed_at: string | null
created_at: string
updated_at: string
}