---
type: reference
title: "Pokémon TCG — Local Arena and Data Overhaul"
description: "Product boundary and decisions for the normalized local arena, replay, dashboard and research database."
tags: [pokemon-tcg, local-arena, schema, replay, dashboard, experiments, idempotency]
timestamp: "2026-07-27T23:00:00-03:00"
---

# Pokémon TCG — Local Arena and Data Overhaul

## Status

This began as a design and documentation contract agreed in the July 27, 2026
review conversation. The live repository now contains a partial implementation:
SQLite schema v2, deck fingerprints, teams, submissions, tournaments, matches,
normalized local replay rows, Streamlit dashboard tabs, remote replay rebuild,
and local card/deck Elo are implemented. The full target product remains larger
than the current code.

See [[pokemon_tcg_local_platform_status]] for the current implemented,
partially implemented, and planned boundary.

## Product boundary

The local product combines catalog and deck workbench, model and experiment history, synchronous arena, normalized replay storage, source-separated ratings, daily remote intake and Streamlit dashboard. SQLite is the local source of truth in this phase. The future compute-ledger/on-chain idea is explicitly outside this implementation boundary.

## Decisions

- Stable numeric IDs are primary keys; names are editable metadata.
- A model is a first-class identity; model revisions are immutable.
- A deck family is renameable; deck revisions are immutable compositions.
- A submission is a concrete model revision plus deck revision. Local reuse persists the pair's rating lineage; each remote Kaggle send starts a new lineage at 600.
- Submission, model, deck and card ratings are separate and source-aware. Deck Elo is not a card-Elo average.
- Experiments are generic research containers; training is only one subtype. Anamnese is append-only temporal observation data.
- Replay data is canonical relational state. JSON is an ingestion source; HTML is never persisted. The dashboard launches the official visualizer externally.
- Every domain enum has its own reference table and foreign key. No magic values, JSON fields, blobs or generic enum table.
- All writes, imports and administrative actions are idempotent.

## Reading map

- [[pokemon_tcg_physical_schema]] — physical SQLite contract.
- [[pokemon_tcg_replay_data_model]] — replay normalization and visualizer flow.
- [[pokemon_tcg_submissions_and_elo]] — identity and ratings.
- [[pokemon_tcg_deck_strategy]] — deck selection boundary.
- [[pokemon_tcg_experiments_and_anamnesis]] — research history.
- [[pokemon_tcg_dashboard_and_tournament]] — operational surface.
- [[pokemon_tcg_local_platform_status]] — current implementation status.
- [[pokemon_tcg_ladder_and_research]] — ladder evidence and deferred research.
