Sheet-Only Importer, No Marketplace IDs
| Date | 2026-06-03 |
| Status | Accepted |
| Decision Makers | @GaultierRomon |
Context and Problem Statement
Echoes of Astra is a brand-new indie game. It is not listed on TCGplayer or Cardmarket, and the publisher provides card data as a Google Sheet (Expansions + Products tabs) plus a Drive folder of card art. We need to decide how to model the catalogue and pricing.
Decision Drivers
- The game has no external vendor catalogue to match against — the sheet is the single source of truth.
- No marketplace sells the cards, so there is no price feed to import.
- The data model should reuse as much generic machinery as possible rather than introduce game-specific plumbing.
Considered Options
- Generic
SheetImporterwith empty marketplace config — model the game like Drakerion/Cyberpunk. - Bespoke API/importer — build a custom client (unjustified; there is no API).
Decision Outcome
Chosen option: Generic SheetImporter. EoaImporter extends SheetImporter and relies on the base class’s attribute auto-mapping. Marketplace integration is explicitly disabled:
GameConfiguration.supportedMarketplaces = []andvendorIdsis omitted.csvTemplateExample.vendorIds = {}(the CSV importer template shows no vendor-ID rows).gameToTcgcsvCategory,gameToCardMarketGameIdMap, and the TCG-PowerTools category all map toundefined.price-importer-servicemapseoa → [](no importers) andCATALOGUE_QUALITY[eoa] = NONE.- Sealed-product sheet/folder IDs are
null(no sealed catalogue yet); sealed support is wired with the common categories so it can be enabled later without code changes.
Consequences
- âś… Zero pricing plumbing to maintain; the game cannot accidentally trigger a price import.
- âś… The product schema (
EoaCardProductSchema) carries noexternalIdsfor marketplaces. - ⚠️ If the game is later listed on a marketplace, the marketplace maps and
CATALOGUE_QUALITYmust be revisited.
Last updated on