Skip to Content
Game ImportersEchoes of AstraAdrSheet-Only Importer, No Marketplace IDs

Sheet-Only Importer, No Marketplace IDs

Date2026-06-03
StatusAccepted
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

  1. Generic SheetImporter with empty marketplace config — model the game like Drakerion/Cyberpunk.
  2. 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 = [] and vendorIds is omitted.
  • csvTemplateExample.vendorIds = {} (the CSV importer template shows no vendor-ID rows).
  • gameToTcgcsvCategory, gameToCardMarketGameIdMap, and the TCG-PowerTools category all map to undefined.
  • price-importer-service maps eoa → [] (no importers) and CATALOGUE_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 no externalIds for marketplaces.
  • ⚠️ If the game is later listed on a marketplace, the marketplace maps and CATALOGUE_QUALITY must be revisited.
Last updated on