Skip to Content
Game ImportersStar Wars: UnlimitedArchitecture Decision RecordsVariant/Finish Model (Prestige, Serialized)

Variant/Finish Model (Prestige, Serialized)

Date2026-03-24
StatusAccepted
Decision Makers@benjaminW78

Context and Problem Statement

Star Wars: Unlimited has 8 distinct card variants on TCGPlayer: Standard, Standard Foil, Hyperspace, Hyperspace Foil, Showcase, Standard Prestige, Foil Prestige, and Serialized Prestige. We need to map these to our two-dimensional model of variant (art/frame treatment) and finish (physical card treatment).

The tricky part is Prestige. The official SWU article “The Art of Unlimited”  describes three tiers of Prestige cards: Standard Prestige (Tier 1), Foil Prestige (Tier 2), and Serialized Prestige (Tier 3). Should Prestige be a variant, a finish, or something else?

Decision Drivers

  • Variant should represent what the card looks like (art treatment, frame style)
  • Finish should represent how the card is physically produced (foil treatment, serialization)
  • The model should be intuitive for users browsing and filtering inventory
  • TCGPlayer treats each combo as a separate product, so we need unique IDs for each
  • Serialized cards are individually numbered — a physical characteristic, not an art variant

Considered Options

  1. Prestige as variant, Serialized as finish: Variants = Standard, Hyperspace, Showcase, Prestige. Finishes = Normal, Foil, Serialized.
  2. Prestige tiers as separate variants: Variants = Standard, Hyperspace, Showcase, Prestige, Prestige Foil, Prestige Serialized. Finishes = Normal, Foil.
  3. Flat 8-value enum: A single “variant” enum with all 8 TCGPlayer variants, no separate finish dimension.

Decision Outcome

Chosen option: Prestige as variant, Serialized as finish, because it cleanly separates the art/frame treatment (Prestige) from the physical production method (Normal, Foil, Serialized).

The mapping from SWU API variantType to our model:

SWU API variantTypeOur VariantOur Finish
StandardStandardNormal
Standard FoilStandardFoil
HyperspaceHyperspaceNormal
Hyperspace FoilHyperspaceFoil
ShowcaseShowcaseFoil
Standard PrestigePrestigeNormal
Foil PrestigePrestigeFoil
Serialized PrestigePrestigeSerialized
enum StarWarsUnlimitedVariant { STANDARD = "Standard", HYPERSPACE = "Hyperspace", SHOWCASE = "Showcase", PRESTIGE = "Prestige", } enum StarWarsUnlimitedFinish { NORMAL = "Standard", FOIL = "Foil", SERIALIZED = "Serialized", }

Variant/Finish Mapping Diagram

Impacted Files

FileKey SymbolsRole
packages/backend/domains/game-importer/src/lib/importers/star-wars-unlimited/star-wars-unlimited.types.tsStarWarsUnlimitedVariant, StarWarsUnlimitedFinishEnum definitions for Variant and Finish
packages/backend/domains/game-importer/src/lib/importers/star-wars-unlimited/star-wars-unlimited.game.tsGame configvariants and finishes arrays used in game registration
packages/backend/domains/game-importer/src/lib/importers/star-wars-unlimited/star-wars-unlimited-importer.tsvariantTypeToFinish, variantTypeToVariantStatic maps that perform the variantType-to-model conversion
packages/i18n/src/locales/en.jsonTranslation keysDisplay labels for variant and finish values
packages/i18n/src/locales/fr.jsonTranslation keysFrench translations for variant and finish values

Consequences

Positive

  • Clean two-dimensional model: variant describes art, finish describes physical treatment
  • Prestige is clearly an art/frame variant — all Prestige cards share the same premium art style regardless of finish
  • Serialized is a physical characteristic (individually numbered) which fits naturally as a finish
  • Users can filter by variant (show me all Prestige cards) or by finish (show me all Foil cards) independently
  • The model scales if new finishes or variants are added in the future

Negative

  • Serialized as a finish is debatable — FFG officially calls it “Tier 3 Prestige” rather than a separate finish category
  • Adds a third finish value (Serialized) that only applies to one variant (Prestige), creating a sparse matrix
  • Showcase always has Foil finish — the variant/finish separation doesn’t fully apply there, but it’s still correct (Showcase cards are physically foiled)
Last updated on