TCG-SCHEMA is an open, schema.org-aligned ontology for Trading Card Games (TCG/CCG/LCG). It provides a structured semantic layer for:
- Cards vs printings
- Sets and releases
- Decklists and formats
- Mechanics and counters
- Resource systems (mana, ink, energy, etc.)
- Metagame archetypes and matchups
- Evidence-based counterclaims
- LLM-friendly card descriptors
The goal is simple and ambitious:
Make card games machine-readable without reducing them to a toy simulator.
Most card game data exists in one of three forms:
- Raw card databases (names, text, sets)
- Market data (prices, printings, SKUs)
- Decklists and tournament results
What’s missing is a formal semantic layer that connects:
- Game rules
- Card intent and interaction axes
- Deckbuilding roles
- Format legality
- Metagame structure
- AI-assisted interpretation
tcg-schema fills that gap.
A tcg:Card is the abstract identity.
A tcg:CardPrinting is a specific product instance.
This distinction is non-negotiable.
The core schema supports:
- Magic
- Lorcana
- Pokémon
- Flesh and Blood
- Yu-Gi-Oh
- Future games not yet invented
Game-specific modules extend the core (e.g., tcg-mtg).
We model structure and meaning — not full gameplay simulation.
This allows:
- Knowledge graphs
- Search
- Deckbuilding heuristics
- Counter-analysis
- LLM grounding
Without building a digital judge program.
Counter relationships are not dogma.
A tcg:CounterClaim must have:
- format
- time window
- sample size
- method
- evidence
Metagames drift. The graph must reflect that.
Cards include structured descriptors:
- role (removal, engine, finisher, etc.)
- interaction axis (stack, graveyard, combat, resource denial)
- synergy tags
- polarity (helpsOwnPlan / disruptsOpponent)
- confidence and extraction method
This enables explainable AI-assisted deck construction.
tcg-schema/
│
├── core/
│ └── tcg-schema-core.ttl
│
├── descriptors/
│ └── tcg-descriptors.ttl
│
├── mtg/
│ ├── tcg-mtg-extension.ttl
│ ├── mtg-rules-sections.ttl
│ └── mtg-terms.ttl
│
├── examples/
│ ├── card-example.jsonld
│ ├── deck-example.jsonld
│ └── counterclaim-example.jsonld
│
└── docs/
└── site/
tcg:CardGametcg:CardSettcg:Formattcg:Legality
tcg:Cardtcg:CardPrintingtcg:CardFacetcg:Abilitytcg:Effecttcg:CounterType
tcg:ResourceSystemtcg:ResourceTypetcg:ResourceCosttcg:ResourceCostComponent
Works for:
- Mana
- Ink
- Energy
- Pitch systems
- Hybrid systems
tcg:Archetypetcg:Matchuptcg:CounterClaimtcg:EvidenceBundle
tcg:DescriptorTypetcg:CardDescriptortcg:ExtractionMethodtcg:DescriptorEvidence
- A format-aware deck builder from your collection
- A metagame analysis engine
- A cost-effective counter recommender
- A semantic search engine for card interactions
- A structured RAG pipeline grounded in card rules
- A knowledge graph across multiple TCGs
A card:
- has role = removal
- interactionAxis = stackInteraction
- polarity = disruptsOpponent
- costProfile = cheap
- confidence = 0.92
A counterclaim:
- archetype A counters archetype B
- winRate = 0.58
- sampleSize = 432
- timeWindow = Jan–Mar 2026
- method = logisticRegression
No vibes. Just structured evidence.
Early core is stable. Game-specific modules are in progress.
Planned:
- MTG complete rule anchoring
- Lorcana extension
- Pokémon extension
- JSON-LD examples
- SHACL validation shapes
- Public SPARQL endpoint (experimental)
We welcome:
- Ontology feedback
- New game modules
- Descriptor vocabulary proposals
- Validation shapes (SHACL)
- Dataset alignment mappings
- Example JSON-LD documents
- Documentation improvements
Open an issue. Be precise. Cite rules when relevant.