Data model
Card printings
One row per physical release of a card: set, collector number, artwork, finishes.
24 columns. Every value below is generated from the provenance registry.
| Field | Type | Source | Updated | Written by |
|---|---|---|---|---|
| id | string | calculated | never | database |
| Internal UUID primary key. | ||||
| scryfall_id | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Scryfall printing id — the per-printing external join key. | ||||
| oracle_id | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Scryfall oracle id linking the printing to its oracle card. | ||||
| name | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Printed card name. | ||||
| set_code | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Set code, e.g. 'msc'. | ||||
| set_name | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Set display name. | ||||
| collector_number | string | scryfall | on set release | scripts/seed-card-printings.ts |
| Collector number within the set (string; can carry suffixes). | ||||
| rarity | string | null | scryfall | on set release | scripts/seed-card-printings.ts |
| Printing rarity. | ||||
| released_at | string | null | scryfall | on set release | scripts/seed-card-printings.ts |
| Set/printing release date. | ||||
| source_hash | string | null | calculated | on set release | scripts/seed-card-printings.ts |
| Digest of the Scryfall fields describing this printing, used to skip rows that have not changed. Excludes the three price columns, the only fields measured to move. | ||||
| finishes | string[] | null | scryfall | on set release | scripts/seed-card-printings.ts |
| Available finishes: nonfoil, foil, etched. | ||||
| image_uris | Json | null | scryfall | on set release | scripts/seed-card-printings.ts |
| Per-printing image URLs from Scryfall. | ||||
| mtgjson_uuid | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (verify-uuids) |
| MTGJSON uuid for this printing, resolved by joining MTGJSON identifiers.scryfallId to our scryfall_id — the join key every MTGJSON price/identifier ingest keys on. | ||||
| tcgplayer_product_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| TCGplayer product id (deep links, affiliate, price joins). | ||||
| tcgplayer_etched_product_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| TCGplayer product id for the etched variant. | ||||
| card_kingdom_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Card Kingdom product id. | ||||
| card_kingdom_foil_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Card Kingdom foil product id. | ||||
| card_kingdom_etched_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Card Kingdom etched product id. | ||||
| mcm_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Cardmarket (MKM) product id. | ||||
| mtgjson_purchase_urls | Json | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| MTGJSON purchaseUrls object — vendor product-page redirects; the only working Card Kingdom link source (no public by-id URL). | ||||
| mtg_arena_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| MTG Arena card id (deck export). | ||||
| mtgo_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Magic Online card id (deck export, Cardhoarder). | ||||
| multiverse_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Gatherer multiverse id. | ||||
| cardsphere_id | string | null | mtgjson | on set release | scripts/ingest-mtgjson.ts (identifiers) |
| Cardsphere id. | ||||
TypeScript model
interface card_printings {
id: string
scryfall_id: string
oracle_id: string
name: string
set_code: string
set_name: string
collector_number: string
rarity: string | null
released_at: string | null
source_hash: string | null
finishes: string[] | null
image_uris: Json | null
mtgjson_uuid: string | null
tcgplayer_product_id: string | null
tcgplayer_etched_product_id: string | null
card_kingdom_id: string | null
card_kingdom_foil_id: string | null
card_kingdom_etched_id: string | null
mcm_id: string | null
mtgjson_purchase_urls: Json | null
mtg_arena_id: string | null
mtgo_id: string | null
multiverse_id: string | null
cardsphere_id: string | null
}