Exposure reads use full Provider Market Identity
An exposure book is identified by the complete Provider Market Identity (fixtureId, bookmaker, marketId). A bare marketId is display metadata, not an exposure key. Cross-provider fixture grouping remains a display projection under ADR-0017 and never permits one provider's exposure to be selected for another.
The batch exposure V2 wire returns an identity-bearing result for every unique requested identity. Results are an array, so two providers using the same bare market ID cannot overwrite each other. An available result repeats the exact identity and carries Decimal money values as strings. Missing metadata, fixture ownership mismatch, and unsupported line-market identity are explicit unavailable results; they never become a confident zero. A validated identity with no stored exposure row may return an exact zero book.
The frontend validates the echoed identity and publishes snapshots through a full-identity, writer-owned cache. Writer claims and request generations prevent late responses and stale cleanup from replacing or deleting another live writer's snapshot. Readers, projected previews, and Intelligent Max require the same complete identity. Missing or mismatched identity is unavailable and never falls back to the legacy bare-ID response or store.
The V1 endpoint and bare-ID frontend state may remain temporarily for already-loaded clients during rollout, but V2 data is never mirrored into them. They are removed after the compatibility drain. MarketExposure persistence, Decimal arithmetic, provider fixture ownership, routing, locking, netting, and settlement remain unchanged.