Gaming normalization architecture¶
Scope¶
Gaming platform normalization is shared product knowledge. It is not merchant-specific unless a rule explicitly depends on a concrete source_feed.
The historical runtime entry point remains ccx_norm_apply_gaming_platforms_v1() in norm/86-gaming-platforms.php. The function is executed from the post-smartphone cross-product stage, preserving the historical position relative to smartphone and industrial classification locks.
Current responsibilities¶
The gaming platform pass currently handles:
- exact platform normalization for video games and consoles;
- dominant compatibility for controllers and console accessories;
- simulation / sim-racing platform completion;
- null completion for retro gaming, Meta Quest, ROG Ally and generic accessories;
- two historical cross-product repairs that move obvious DJI products to Photo & Video and gaming-neon decoration to Home & Garden.
The cross-product repairs remain in the gaming sequence during the first structural extraction because moving them changes ownership and must be reviewed separately.
Ordering contract¶
The historical stage order is:
CCX_GAMING_PLATFORMS_V1;CCX_GAMING_PLATFORMS_V2_NULL_COMPLETION.
Do not reorder the stages or rewrite SQL predicates during structural extraction.
Merchant boundary¶
Platform names and product brands are generic product knowledge. A rule belongs under norm/feed-rules/<feed>/ only when correctness depends on that source feed itself.
Validation¶
tests/Runtime/GamingProductBoundaryContractTest.php characterizes the current runtime surface before modularization. Structural work must preserve the public entry point, stage markers, platform surface and cross-product corrections until a dedicated behavioral migration intentionally changes them.