Skip to Content
Game ImportersDragon Ball Super: MastersAdrMasters = Full DBSCG History Minus Fusion-World Groups

Masters = Full DBSCG History Minus Fusion-World Groups

Date2026-06-10
StatusAccepted (implemented)
Decision Makers@GaultierRomon

Context and Problem Statement

dbs-masters is the original Dragon Ball Super Card Game, launched 2017-07-28 and continuously printed since (B01 → the Zenkai block → current BT/Masters-era sets). “Masters” is just Bandai’s current branding for that same continuous line — not a new game. Its releaseDate in game-definitions.ts is 2017-07-28, reflecting the full history.

On TCGplayer, category 27 = the entire “Dragon Ball Super CCG” back-catalogue — ~105 groups spanning 2017-07-28 → present. This is exactly the Masters catalogue we want… with one problem:

  • TCGplayer misfiles a single Fusion-World set inside category 27. Group 23326 (“Fusion World: Awakened Pulse”, FB01) lives in category 27 even though Fusion World is a separate game.
  • Fusion World is its own CardNexus game — dbs-fusion — with its own FBxx set codes and card pool.

If the Masters importer ingested category 27 unfiltered, it would (a) correctly pull 9 years of legacy DBSCG sets, but also (b) pull the misfiled FB01/group-23326 content, which collides with the same cards imported under dbs-fusion.

Group 2532 (DBS-BE07 “Expansion Deck Box Set 07: Magnificent Collection - Fusion Hero”, publishedOn 2019-10-25) is a legitimate legacy DBSCG Masters set. Its name contains “Fusion” but it is not Fusion-World — it is kept under Masters. The exclusion targets group 23326 only, never a name match.

Decision Drivers

  • Masters is the full 2017+ line — we must not apply a naive “2024+ only” cutoff that would drop the legacy back-catalogue.
  • Fusion-World cards must exist in exactly one CardNexus game (dbs-fusion), never duplicated under Masters.
  • TCGplayer is the source of truth for separating the two games (category 80 vs 27); the only contamination is the misfiled FB set inside category 27.
  • The rule must be a single, auditable hard rule in the importer.

Considered Options

  1. Keep full history, exclude the verified Fusion-World contaminant group(s) — Masters = category 27 minus group 23326.
  2. 2024 publishedOn cutoff — drop everything before 2024. ❌ Wrong: this deletes the entire 2017–2023 legacy catalogue, which Masters owns.
  3. Exclude by Fusion name match — ❌ Wrong: would wrongly drop group 2532 (DBS-BE07 “Fusion Hero”), a legitimate legacy Masters set.

Decision Outcome

Chosen option: Option 1 — keep the FULL DBSCG history and exclude the verified Fusion-World contaminant group 23326.

  • The dbs-masters importer keeps every category-27 group (matching releaseDate: 2017-07-28), with no 2024 cutoff — the full ~104 remaining groups.
  • It excludes group 23326 (FB01 “Fusion World: Awakened Pulse”), which belongs to dbs-fusion.
  • Group 2532 (DBS-BE07 “Fusion Hero”) is kept — it is a legitimate legacy DBSCG set despite the “Fusion” in its name.

The exclusion is implemented as a single module-level set FUSION_WORLD_CONTAMINANT_GROUP_IDS filtered once in init(), right after tcgCsvGroupedProducts is built (covering both the cached and fetched load paths) and before the array is consumed by getExpansions and getCards.

Consequences

Positive

  • Masters carries its true catalogue: the full 2017→present DBSCG line.
  • No card is duplicated across dbs-masters and dbs-fusion.
  • The rule is one auditable groupId exclusion applied at a single chokepoint, easy to verify against TCGCSV group listings.

Negative / Follow-ups

  • Cardmarket needs a code-based split. Cardmarket has no separate Fusion World game — everything (legacy DBS + Zenkai + Masters + Fusion World) lives under one marketplace, idGame 13 (DragonBallSuper). If/when Cardmarket pricing is wired, matching must split catalogue 13 by set code: FBxx → dbs-fusion, BTxx/legacy → dbs-masters. That is a matching project, not a config flip.
  • The exclusion list is keyed on a verified groupId; if TCGplayer misfiles another Fusion-World group into category 27 in future, add its id to FUSION_WORLD_CONTAMINANT_GROUP_IDS.

Impacted Files

FileRole
dbs-masters-importer.tsinit() filters FUSION_WORLD_CONTAMINANT_GROUP_IDS (group 23326) out of tcgCsvGroupedProducts, so getExpansions / getCards both skip it
tcg-csv.service.tsMasters = category 27
game-definitions.tsMasters releaseDate: 2017-07-28 (full history)
cardmarket-importer.ts / game-code-mapping.tsFuture: split idGame 13 by set code (FBxx vs BTxx/legacy)
Last updated on