From 1fac71e3eff5049e94c3035406685664650b8f4a Mon Sep 17 00:00:00 2001 From: OpenFUT Agent Date: Thu, 13 Aug 2026 21:51:52 +0000 Subject: [PATCH] docs(route-authority): market resourceId mapping + reveal contract landed Records fe72f0d (resourceId->Core card_id reverse mapping; listings carry both identities; full Core+store restart E2E) and 747cc23 (GET /purchased reveal = durable purchased pile, idempotent). Both pre-barrier correctness gaps closed. Remaining: Python differential, host concurrency matrix, failure injection, importer, from_config attachment, then the classifier barrier + reachability. --- openfut-utas-host/ROUTE_AUTHORITY.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/openfut-utas-host/ROUTE_AUTHORITY.md b/openfut-utas-host/ROUTE_AUTHORITY.md index 5c80929..2792939 100644 --- a/openfut-utas-host/ROUTE_AUTHORITY.md +++ b/openfut-utas-host/ROUTE_AUTHORITY.md @@ -141,10 +141,12 @@ attachment of `EconomyServices` + `classify()` barrier flip; then no-Python-fall / writer-unreachable / stale-reader / NEVER-BOTH proofs. Retire in-memory `ProfileEconomy` from any prod path. -**Two market-handler correctness gaps to close before the barrier:** (a) the -synthetic-seller buy mints `listing.card_id`, which `handle_market_list` sets to the -numeric wire `resourceId` string — a real Core `card_id` requires a resourceId→card_id -mapping (Core's content preflight rejects an unmapped mint on reboot); (b) `GET -/purchased` reveal needs a last-opened cache (POST returns metadata; items are polled -via GET) — Store BUY (open-on-buy) already returns items inline, so this only affects -owned reward-pack (pack 70) opens. +- **Market resourceId→Core card_id mapping** (`fe72f0d`): listings carry BOTH + `card_id` (authoritative Core content, minted on buy) and `wire_resource_id` + (FIFA wire, echoed in the auction record); `handle_market_list` reverse-maps via + the catalog `by_resource` index and fails closed on an unmappable resource. The + E2E now survives a FULL Core+store restart (synthetic mint is real content). +- **GET /purchased reveal** (`747cc23`): the reveal is the durable FIFA "purchased" + pile (PileStore `list_by_pile`), shaped by the same `shape_club_response` /club + uses; idempotent, cleared per-item on move-to-club. E2E opens pack 70 and asserts + the reveal + idempotent repeat.