How pier-tmp/mtgda works
MTG Draft Assistant turns a current booster pack and prior picks into ranked card recommendations. The API resolves catalog names or custom card dictionaries, batches uncached card encoding, builds draft-history inputs, and asks a Torch or ONNX backend to score candidates; the API converts scores to probabilities and rankings. Stateful drafting records each selected card for the next step. The README documents zero-shot support for unseen cards. Backend and model wiring is supported by sampled source; the catalog contents and deployment assets were not sampled.
Main entry points: backend.py Inference backends · api.py Assistant API · model.py Card encoder · features.py Card featurizer
Components 15
Draft API
- Assistant API
src/mtgda/api.py - Stateful draft
src/mtgda/api.py - Ranked recommendations
src/mtgda/api.py
Card Resolution
- Card database
src/mtgda/cards.py - Card featurizer
src/mtgda/features.py - Mechanic patterns
src/mtgda/assets/patterns
Inference
- Inference backends
src/mtgda/backend.py - Text tokenizer
- Draft network
src/mtgda/model.py - Card encoder
src/mtgda/model.py - Draft scorer
src/mtgda/model.py
Model Artifacts
- Checkpoint loader
src/mtgda/checkpoint.py - Model hub
- Pretrained text model
Other components
- Drafting consumer
Connections 21
- Drafting consumer → Assistant API: requests ranking
- Assistant API → Card database: resolves cards
- Assistant API → Inference backends: encodes uncached cards
- Inference backends → Card featurizer: extracts features
- Card featurizer → Mechanic patterns: loads patterns
- Inference backends → Text tokenizer: tokenizes text
- Inference backends → Card encoder: encodes cards
- Card encoder → Pretrained text model: encodes text
- Assistant API → Inference backends: scores draft inputs
- Inference backends → Draft scorer: scores candidates
- Draft network → Card encoder: contains
- Draft network → Draft scorer: contains
- Stateful draft → Assistant API: ranks current pack
- Stateful draft → Card database: validates pick
- Assistant API → Ranked recommendations: returns ranking
- Ranked recommendations → Drafting consumer: presents choices
- Inference backends → Checkpoint loader: loads weights
- Inference backends → Model hub: downloads artifacts
- Model hub → Inference backends: provides model files
- Text tokenizer → Model hub: loads tokenizer
- Checkpoint loader → Pretrained text model: loads pretrained weights