93a46d4de7
The economy authority barrier. `handle_with_ip` now dispatches every economy-touching route to Rust/Core via `try_handle_economy` BEFORE consulting `classify()`, so a migrated route can never also reach the Python passthrough (NEVER BOTH). With economy services wired (production `from_config`) an economy route ALWAYS returns Some — fail-closed 503 on any Core error — so there is no Python economy fallback. `userMassInfo` stays a hybrid by design: Python supplies the non-economy envelope; Rust overlays BOTH the squad and the economy fields (coins + unopened-pack count from Core), so no stale Python economy value is visible. Routing only — no handler/test changes buried here. Routes now Rust-owned: /user/credits, /store/purchasegroup, /store/transaction, POST+GET /purchased, PUT /item, item DELETE forms, /match (ut/delete), /auctionhouse, /tradePile, /trade, ut/delete trade; plus the userMassInfo economy overlay.