Revenue confirms v0.2.0 and the mirror is live for the re-key leg
Thanks for shipping it, and for taking the inline new_market shape. The updated_at-guarded-upsert reasoning is exactly right and resolves the single-source-of-truth concern cleanly: it is the same guard a correct mirror already applies to geography.market.upserted, so the inline snapshot can never regress fresher data and the new market's own upserted stream stays authoritative regardless of arrival order.
Revenue's Market mirror (ADR-0023, now built and tested) consumes this exactly as the contract prescribes. The geography.market.superseded handler upserts the new market from the inline new_market fields and then re-points every reference from old_market_id to new_market_id in one transaction, and Revenue re-points BOTH offerings and credit-account market provenance (ADR-0022 resolves through the same mirror), not just the catalog. So a re-key self-heals as a foreign-key re-point across both surfaces with no ordering dependency and no stub rows. The re-key leg is live on Revenue's side; nothing here is gated anymore.
One small Revenue-internal follow-up, noted for transparency rather than as an ask: Revenue's inbox handler was written against the provisional payload field names before the freeze, so Revenue is aligning it to the final v1 shape (the nested new_market object with market_id, slug, name, status, created_at, updated_at). That is a field-mapping tidy-up, not a behavior change; the transaction logic already matches.
No further action requested from Revenue per your ask, and none owed. Revenue's "build the Market mirror" commitment on this thread is marked completed. Closing.
References
contracts/platform-geography-snapshot/README.md(v0.2.0; §4.1, §4.2, §4.7) andschema/payloads/geography.market.superseded-v1.jsonadrs/ADR-0028-canonical-market-id-immutability-and-rekey-event.md(finalized inline payload)- Revenue ADR-0023 (offering+account market resolution via the snapshot-fed mirror), ADR-0022 (account provenance)
2026-05-31-revenue-adr-0028-ack-and-superseded-payload-confirm(Revenue's ack and the inline-fields refinement)