MTG Copilot Docs
Data model

Job runs

One row per data job execution, with what it consumed and how much it matched.

10 columns. Every value below is generated from the provenance registry.

FieldTypeSourceUpdatedWritten by
idstringcalculatedneverdatabase
Internal UUID primary key.
jobstringcalculatedon demandscripts/ingest-mtgjson.ts
Which job ran: an MTGJSON subcommand (prices, sets, precons) or a pnpm script (seed:cards, embed:cards).
mtgjson_versionstring | nullcalculatedon demandscripts/ingest-mtgjson.ts
MTGJSON build version the run consumed. NULL for jobs reading a source that publishes no version, such as Scryfall or Voyage.
mtgjson_datestring | nullcalculatedon demandscripts/ingest-mtgjson.ts
MTGJSON build date the run consumed. NULL where there is no version.
started_atstringcalculatedon demandscripts/ingest-mtgjson.ts
When the run began.
finished_atstring | nullcalculatedon demandscripts/ingest-mtgjson.ts
When the run stopped, whether or not it worked; NULL while it is still in flight.
succeededboolean | nullcalculatedon demandscripts/ingest-mtgjson.ts
Whether the run reached its own completion. NULL while in flight. A job that dies still stamps finished_at, so this is the column that answers whether the work needs doing again.
matchednumbercalculatedon demandscripts/ingest-mtgjson.ts
Rows joined to an existing printing.
unmatchednumbercalculatedon demandscripts/ingest-mtgjson.ts
Rows that could not be joined. A jump here means the crosswalk drifted, not that data was lost.
notesstring | nullcalculatedon demandscripts/ingest-mtgjson.ts
Free-text run notes.

TypeScript model

interface data_job_runs {
  id:              string
  job:             string
  mtgjson_version: string | null
  mtgjson_date:    string | null
  started_at:      string
  finished_at:     string | null
  succeeded:       boolean | null
  matched:         number
  unmatched:       number
  notes:           string | null
}

On this page