0002: Card identity
Status: Accepted. Item 4 clarified by decision 0024 (links between objects end on zone changes).
Context
The prototype card table entries look like #1 Talisman of Impulse (19683), PlayerA: an instance ID, a name, an MTGO catalog ID, and an owner. The catalog ID is meaningful only to MTGO. Instance IDs are also inconsistent: a card keeps its ID when moving from the battlefield to exile, but after a mulligan the new hand gets new IDs.
Players choose their printings deliberately, and those choices matter to them, so a replay should be able to show the printing that was actually played.
Decision
- The card name is the core identity. It is the card's English Oracle name. Multi-faced cards use the full name with
//between faces. - The printing is recorded when the source knows it. It is written as a set code and collector number, which any card database (for example Scryfall) can resolve to a specific printing and its art. Writers SHOULD include the printing whenever the source provides it, for the opponent's cards as well as the perspective player's.
- Source IDs are optional, labelled metadata. A source's own ID (for example the MTGO catalog ID) is written with a source prefix such as
mtgo:19683. It is never required, and the file must be fully meaningful without it. - An instance ID lasts as long as the card can be tracked. A card keeps its ID through every zone change the perspective player can follow. Once its identity is lost, it gets a new ID: shuffled into a library, put back by a mulligan, or otherwise moved somewhere it can no longer be told apart from other cards. Example: with four copies in a library, a copy shuffled in and a copy drawn later cannot realistically be known to be the same card.
- Tokens and copies have instance IDs and are marked as tokens or copies in the card table, so parsers know no physical card stands behind them.
Rules basis
Checked against the Comprehensive Rules effective 2026-09-25.
- 201.2: "A card's name is always considered to be the English version of its name, regardless of printed language." Names are recorded in English whatever language the printing is.
- 108.1: "Use the Oracle card reference when determining a card's wording." The Oracle name is the canonical name.
- 201.3: some cards with different English names are treated as having the same name. The format records the actual card's name; rules equivalence is a parser concern.
- 712.1, 712.8: a double-faced card has two faces, each with its own characteristics, and which face is up matters on the battlefield and stack. The card's identity is the whole card; the face that is up is game state.
- 400.7: an object that moves from one zone to another becomes a new object with no memory of its previous existence (with listed exceptions). The format deliberately does not mirror this in instance IDs; see Alternatives rejected.
- 111.1: a token represents a permanent not represented by a card. 707.2: a copy acquires the copiable values of the original. Neither has a physical card, so both are marked in the card table.
Alternatives rejected
- Source catalog ID as the identity. Rejected: ties the format to one client.
- Scryfall ID as the identity. Rejected: ties the format to one third-party service. Set code plus collector number is publisher-defined and resolvable by any database.
- Name only. Rejected: loses printings, which players care about.
- A new ID on every zone change, following Comprehensive Rules 400.7. Rejected: a viewer could no longer follow a card from hand to stack to battlefield. A zone change event already shows that the object is new in rules terms.
- One ID per physical card for the whole game. Rejected: impossible to maintain honestly once a card is shuffled into a hidden zone.
Consequences
- The card table grammar needs fields for name, optional printing, optional source IDs, owner, and a token/copy marker.
- The spec must list which events end an instance ID's life, and how a card that re-emerges is introduced under its new ID.