Why
The deterministic asset inventory (docs/graphics-audit/game_asset_inventory_summary.json, regenerate with docs/graphics-audit/analyze_game_assets.py) measured frontend/public/assets at 86 images / ~276 MB with no atlas or compression strategy. Ten assets carry green chroma-key residue — worst offenders: dealer aim (43% green pixels), passenger overlay (42%), enforcer idle (12%). The top-down sedan and several top-down characters are RGB with no alpha, so backgrounds are baked in and they cannot composite as sprites.
Scope
Acceptance
Inventory script reports zero high-fringe assets, all sprites RGBA, total shipped size within budget.
Relates: #77, #78, #45.
Why
The deterministic asset inventory (
docs/graphics-audit/game_asset_inventory_summary.json, regenerate withdocs/graphics-audit/analyze_game_assets.py) measuredfrontend/public/assetsat 86 images / ~276 MB with no atlas or compression strategy. Ten assets carry green chroma-key residue — worst offenders: dealer aim (43% green pixels), passenger overlay (42%), enforcer idle (12%). The top-down sedan and several top-down characters are RGB with no alpha, so backgrounds are baked in and they cannot composite as sprites.Scope
public/analyze_game_assets.pyto CI (or a pre-release checklist) as a regression gate: fail on new no-alpha sprites or >5% green fringe_original.pngfiles out ofpublic/assets/generated/Acceptance
Inventory script reports zero high-fringe assets, all sprites RGBA, total shipped size within budget.
Relates: #77, #78, #45.