181bd94341
All Core-backed, fail-closed (503, never Python), NOT yet classifier-routed (coherent barrier pending full cluster + Core seed): - handle_purchasegroup: full Rust body from Core entitlements + StoreMode via the oracle-fixture-tested build_purchasegroup (no Python body dependency). - overlay_massinfo_economy: set userInfo.currencies coins + unopenedPacks recoveredPacks from Core, preserving all other fields. - handle_match_end + build_match_reward_body: derive outcome from endReason, credit via Core grant_reward, oracle-shaped destroy_match_body. Invariant test: credits == userMassInfo == purchasegroup all read one Core state. 7 new host tests (+ FakeEconomy write methods honor fail flag).