MTG Copilot Docs
Your data

Your data

What the app stores for you, how to get data in and out, and what each table holds.

The rest of these docs describe the card data the app runs on, imported from sources anyone can check. This section is about the other half: the decks, collection, profile and conversations that belong to you.

Everything here is read server-side under row-level security. Documenting the shape of a table changes nothing about who can read a row.

Getting data in

  • Importing a collection. CSV exports from Moxfield, Archidekt, Deckbox, ManaBox and TCGplayer, what gets read from each, and what to do when a row does not match.
  • Deck import and export. Pasted decklists and CSVs, read with the same header-name rules, plus what comes back out.

What we store

Each area gets a reference page with the same per-column provenance as the card data model: what writes a value, and when.

AreaTablesReference
Collectioncollection_cards, collection_sealedCollection
Decksdecks, deck_cards, folders, deck_sharesDecks
Deck analysisdeck_analyses, deck_analysis_feedback, deck_card_eventsDecks
Profile and accountusers, profilesProfile
AI conversationsai_conversations, ai_messages, ai_turn_logs, ai_pipeline_events, ai_audit_findings, token_usageConversations
Feedback you sendtag_feedback, search_translation_feedbackFeedback
Pods and game nightpods, pod_members, pod_invites, pod_guests, pod_visible_deck, pod_visible_profilePods
Logged gamesgames, game_seats, game_eventsPods
Shared with a podpod_mates, pod_deck_options, game_seat_playersPods

The last row is different from the others. Those three are views rather than tables: they hold no rows of their own and exist to shape what one account is allowed to see of another's, which is why they are listed here even though nothing writes to them directly.

That is everything holding user data as of today. Every table and every view in the database is classified, and a migration that adds one without classifying it fails to typecheck, so a new one is a decision someone made rather than something nobody noticed.

What the AI is given

Answering a question about your deck requires knowing what is in it, so deck contents are sent to the model. Your collection is used where a question depends on what you own. Both are read server-side, as part of answering your own question. See how the AI sees your deck for what is loaded when, and grounding for what the model is allowed to know.

On this page