Masters = Full DBSCG History Minus Fusion-World Groups
| Date | 2026-06-10 |
| Status | Accepted (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 ownFBxxset 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
- Keep full history, exclude the verified Fusion-World contaminant group(s) — Masters = category 27 minus group 23326.
- 2024 publishedOn cutoff — drop everything before 2024. ❌ Wrong: this deletes the entire 2017–2023 legacy catalogue, which Masters owns.
- Exclude by
Fusionname 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-mastersimporter keeps every category-27 group (matchingreleaseDate: 2017-07-28), with no 2024 cutoff — the full ~104 remaining groups. - It excludes group 23326 (
FB01“Fusion World: Awakened Pulse”), which belongs todbs-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-mastersanddbs-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
| File | Role |
|---|---|
dbs-masters-importer.ts | init() filters FUSION_WORLD_CONTAMINANT_GROUP_IDS (group 23326) out of tcgCsvGroupedProducts, so getExpansions / getCards both skip it |
tcg-csv.service.ts | Masters = category 27 |
game-definitions.ts | Masters releaseDate: 2017-07-28 (full history) |
cardmarket-importer.ts / game-code-mapping.ts | Future: split idGame 13 by set code (FBxx vs BTxx/legacy) |