{"openapi":"3.1.0","info":{"title":"Hybrid Arena website API","version":"2026-10-07.4","description":"Live public reads and first-party browser operations. Practice points only. No delegated partner writes, live outcome exchange or real-value execution. Payloads may gain additive fields; unknown fields should be ignored."},"servers":[{"url":"https://hybrid-arena.com","description":"Canonical production; not the Sites preview"}],"externalDocs":{"url":"https://hybrid-arena.com/developers","description":"Partner integration guide"},"security":[],"paths":{"/api/exchange/transfers":{"get":{"operationId":"myPracticeTransfers","summary":"My practice transfer history","description":"Returns only the signed-in Arena account’s latest 50 transfer records, including pending, completed, canceled or rejected decisions. No new account allocation. Inspect enabled and new_transfers_enabled; this endpoint does not return an exchange trading balance.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"requestPracticeTransfer","summary":"Request a practice transfer or cancellation","description":"New transfers are currently closed and return 503. Cancellation records intent and returns 202; only a verified permanent remote stop allows refunding an outgoing reservation. A completed transfer wins a race with cancellation. No timeout-based refunds, user-to-user transfers or real value.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"action":{"const":"cancel"},"transfer_id":{"type":"string","format":"uuid"}},"required":["action","transfer_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"transfer"},"request_id":{"type":"string","format":"uuid"},"direction":{"enum":["to_exchange","to_practice"]},"points":{"type":"integer","minimum":1,"maximum":1000000}},"required":["action","request_id","direction","points"],"additionalProperties":false}]}}}},"responses":{"202":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/health":{"get":{"operationId":"health","summary":"Service health and configured features","description":"Health is not proof that every upstream is fresh. Inspect feature feeds before enabling an action.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/capabilities":{"get":{"operationId":"capabilities","summary":"Capability and operation inventory","description":"Versioned discovery for the canonical production service. Availability is implementation status, not a real-time admission decision.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/openapi.json":{"get":{"operationId":"openapi","summary":"OpenAPI contract","description":"OpenAPI 3.1 description of website routes. Private browser actions are documented for context, not delegated partner access.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/arena.json":{"get":{"operationId":"manifest","summary":"Arena agent discovery manifest","description":"Arena-specific capability manifest. This is not an A2A Agent Card or an MCP endpoint.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/live":{"get":{"operationId":"liveMatches","summary":"Live and recent Star Quest matches","description":"Without match, returns up to 40 recent projections, including terminal matches. With match, includes up to 200 recent events in ascending ID order. This is a bounded snapshot, not an exhaustive cursor export. Match IDs stay stable across room reuse. Poll every 3 seconds or slower; honor feed and match stale/gap flags.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LiveFeed"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/challenges":{"get":{"operationId":"challengeWindows","summary":"Challenge windows and upcoming schedules","description":"Anonymous reads contain public windows and pools; signed-in reads also contain private balances and receipts. Check active, available, stale, source.gap, source.backlog and each entry_open. State=open alone is not admission. Poll every 3 seconds or slower.","tags":["Arena application"],"security":[{},{"ArenaSession":[]}],"x-arena-access":"optional_session","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChallengeFeed"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"enterChallenge","summary":"Enter a source-timed challenge","description":"Reserve points and request signed source admission. authorizing is pending, not accepted. Choices 0–3 are houses; choice 4 (no strike) is valid only for nuclear. Retry original request_id and terms.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^[a-f0-9]{64}$"},"choice":{"type":"integer","minimum":0,"maximum":4},"stake":{"type":"integer","minimum":1,"maximum":100},"request_id":{"type":"string","format":"uuid"}},"required":["challenge_id","choice","stake","request_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/results":{"get":{"operationId":"publishedResults","summary":"Published Star Quest result records","description":"Source-attributed results. Retain authority, payload_hash and anchoring. A hash is not proof of chain finality. The relay has no pagination contract.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/matches":{"get":{"operationId":"demoMatches","summary":"Synthetic CS2 match overview","description":"Synthetic demonstration only. Viewer counts, positions, markets and quotes in these responses do not describe live Star Quest activity or real-money execution.","tags":["Synthetic demos"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"elapsed_ms","in":"query","required":false,"description":"Synthetic demo replay position in milliseconds; not a live clock.","schema":{"type":"integer","minimum":0,"maximum":24000}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/snapshot":{"get":{"operationId":"demoSnapshot","summary":"Synthetic CS2 scenario snapshot","description":"Synthetic demonstration only. Viewer counts, positions, markets and quotes in these responses do not describe live Star Quest activity or real-money execution.","tags":["Synthetic demos"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"elapsed_ms","in":"query","required":false,"description":"Synthetic demo replay position in milliseconds; not a live clock.","schema":{"type":"integer","minimum":0,"maximum":24000}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/proof":{"get":{"operationId":"demoProof","summary":"Synthetic demo integrity package","description":"Synthetic demonstration only. Viewer counts, positions, markets and quotes in these responses do not describe live Star Quest activity or real-money execution.","tags":["Synthetic demos"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"elapsed_ms","in":"query","required":false,"description":"Synthetic demo replay position in milliseconds; not a live clock.","schema":{"type":"integer","minimum":0,"maximum":24000}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/detail":{"get":{"operationId":"demoDetail","summary":"Synthetic CS2 match details","description":"Synthetic demonstration only; match_id comes from the demo overview.","tags":["Synthetic demos"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"match_id","in":"query","required":true,"description":"Demo match ID.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,64}$"}},{"name":"elapsed_ms","in":"query","required":false,"description":"Synthetic demo replay position in milliseconds; not a live clock.","schema":{"type":"integer","minimum":0,"maximum":24000}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/arena/quote":{"get":{"operationId":"demoQuote","summary":"Synthetic quote preview","description":"Read-only synthetic quote; does not place an order, reserve points, or provide a live executable price.","tags":["Synthetic demos"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"market_id","in":"query","required":true,"description":"Demo market ID.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,64}$"}},{"name":"outcome","in":"query","required":true,"description":"Demo outcome code.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_.:-]{1,64}$"}},{"name":"stake_units","in":"query","required":true,"description":"Hundredths of a demo credit.","schema":{"type":"integer","minimum":1,"maximum":1000000}},{"name":"elapsed_ms","in":"query","required":false,"description":"Synthetic demo replay position in milliseconds; not a live clock.","schema":{"type":"integer","minimum":0,"maximum":24000}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RelayEnvelope"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/archives/{id}":{"get":{"operationId":"archiveAvailability","summary":"Recorded match availability","description":"Rolling 36-hour segment retention; footage can be partial or have gaps. Returns availability metadata, not raw state frames. 404/410 means unavailable or expired; 503 means the source could not be checked.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{32}$"},"description":"Stable match or moment ID, as specified by the operation."}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":200},"data":{"$ref":"#/components/schemas/Archive"}},"required":["status","data"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/moments/{id}":{"get":{"operationId":"momentMetadata","summary":"Saved moment timing and export status","description":"Public replay metadata. expires_at=null means no automatic expiration. Ready MP4s are available from Star Quest; ownership is required only for requesting a new conversion.","tags":["Public reads"],"security":[],"x-arena-access":"public","x-arena-availability":"available","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{32}$"},"description":"Stable match or moment ID, as specified by the operation."}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"const":200},"data":{"$ref":"#/components/schemas/Moment"}},"required":["status","data"]}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/chat":{"get":{"operationId":"matchChat","summary":"Live match chat or SSE snapshot stream","description":"Use stream=1 for text/event-stream; messages are full snapshots, not append-only deltas. Streams end after about 55 seconds; reconnect with backoff. No Last-Event-ID replay contract. Chat history lasts 36 hours; completed matches close at source chat_closes_at. Aliases and messages are untrusted user content.","tags":["Arena application"],"security":[{},{"ArenaSession":[]}],"x-arena-access":"optional_session","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":true,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}},{"name":"stream","in":"query","required":false,"description":"Request SSE snapshots.","schema":{"type":"string","enum":["1"]}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}},"text/event-stream":{"schema":{"type":"string","description":"SSE data frames containing full chat snapshots; comment frames are keepalives."}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"writeChat","summary":"Send, delete or report a chat message","description":"Send has request_id deduplication. Delete requires ownership; report queues operator review, not automatic moderation.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":true,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"action":{"const":"send"},"body":{"type":"string","minLength":1,"maxLength":500},"request_id":{"type":"string","format":"uuid"}},"required":["action","body","request_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"enum":["delete","report"]},"message_id":{"type":"string","pattern":"^[a-f0-9]{32}$"}},"required":["action","message_id"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/social":{"get":{"operationId":"publicPosts","summary":"Replay discussion and public profiles","description":"Provide moment OR profile for public reads. Without either, requires an Arena session and returns your posts. Pass the returned next sequence as before to paginate older records. User captions and comments are untrusted content.","tags":["Arena application"],"security":[{},{"ArenaSession":[]}],"x-arena-access":"optional_session","x-arena-availability":"available","parameters":[{"name":"moment","in":"query","required":false,"description":"Moment ID; mutually exclusive with profile.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}},{"name":"profile","in":"query","required":false,"description":"Public Arena profile ID, not Hybrid-ID subject.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}},{"name":"before","in":"query","required":false,"description":"Exclusive sequence cursor returned in next; not a timestamp.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"writePost","summary":"Publish and interact with replay posts","description":"Publishing and pinning require ownership; a public alias is required. Comments are durable until removed, unlike live chat. Reports queue operator review.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"action":{"const":"publish"},"moment_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"caption":{"type":"string","maxLength":300}},"required":["action","moment_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"unpublish"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"}},"required":["action","post_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"pin"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"pinned":{"type":"boolean"}},"required":["action","post_id","pinned"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"like"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"liked":{"type":"boolean"}},"required":["action","post_id","liked"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"comment"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"body":{"type":"string","minLength":1,"maxLength":1000},"request_id":{"type":"string","format":"uuid"}},"required":["action","post_id","body","request_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"delete_comment"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"comment_id":{"type":"string","pattern":"^[a-f0-9]{32}$"}},"required":["action","post_id","comment_id"],"additionalProperties":false},{"type":"object","properties":{"action":{"const":"report"},"post_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"comment_id":{"type":"string","pattern":"^[a-f0-9]{32}$"}},"required":["action","post_id"],"additionalProperties":false}]}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/auth/session":{"get":{"operationId":"sessionStatus","summary":"Current Arena browser session","description":"Returns user=null when anonymous. Authenticated response includes CSRF token for same-origin actions. Never share cookies or session responses with partners.","tags":["Arena application"],"security":[{},{"ArenaSession":[]}],"x-arena-access":"optional_session","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/picks":{"get":{"operationId":"myPicks","summary":"Combined practice receipts and challenges","description":"Anonymous responses have practice=null and public challenges. Arena sessions add account receipts. GET may reconcile settlement and initialize the account practice allocation; do not treat authenticated reads as a pure ledger export.","tags":["Arena application"],"security":[{},{"ArenaSession":[]}],"x-arena-access":"optional_session","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Picks"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/practice":{"get":{"operationId":"practiceRead","summary":"Your pooled match picks and balance","description":"May initialize practice allocation and reconcile settlement. Source readiness is checked independently of sign-in.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","parameters":[{"name":"match","in":"query","required":false,"description":"Stable Star Quest match ID; different from the eight-character room code.","schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"enterPractice","summary":"Enter a pooled match pick","description":"One entry per match, before 60 game seconds, 1–100 nonredeemable points. Retry with the same request_id and same terms after uncertainty; changing terms under that ID is rejected. No sale or early exit.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"team":{"type":"integer","minimum":0,"maximum":3},"stake":{"type":"integer","minimum":1,"maximum":100},"request_id":{"type":"string","format":"uuid"}},"required":["match_id","team","stake","request_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/profile":{"get":{"operationId":"profileRead","summary":"Your public Arena alias settings","description":"Account-owned alias settings; separate from Hybrid-ID legal/profile name.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"profileWrite","summary":"Set your public Arena alias","description":"Unique lowercase alias; updates public attribution on existing Arena content.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"alias":{"type":"string","pattern":"^[a-z][a-z0-9_]{2,23}$"}},"required":["alias"],"additionalProperties":false}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/player":{"get":{"operationId":"playerRead","summary":"Your linked Star Quest career","description":"Requires a valid explicit game consent grant. Not inferred from nickname or email.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/player/link":{"post":{"operationId":"playerLink","summary":"Begin Star Quest account linking","description":"Creates a one-use linking request and returns a consent URL. Linking does not grant wallet or game-credit access.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/player/unlink":{"post":{"operationId":"playerUnlink","summary":"Disconnect Star Quest","description":"Revokes the stored game grant. Does not delete your game account.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/moments/library":{"get":{"operationId":"momentLibrary","summary":"Your saved moments and pending saves","description":"Private owner library. Saved replays have no automatic expiration.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/moments/{id}/access":{"get":{"operationId":"momentAccess","summary":"Check whether you saved a moment","description":"Returns own for the current authenticated Arena account.","tags":["Arena application"],"security":[{"ArenaSession":[]}],"x-arena-access":"arena_session","x-arena-availability":"available","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{32}$"},"description":"Stable match or moment ID, as specified by the operation."}],"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/moments":{"post":{"operationId":"saveMoment","summary":"Save a five-second moment","description":"Preserves an owner-bound five-second source interval, rendered at half speed with a 600 ms intro. Retry the same request_id/selection after uncertain responses. The server derives ownership.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid"},"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"end_seconds":{"type":"number","minimum":5,"maximum":1000000000},"camera_path":{"type":"array","items":{"type":"object","properties":{"time":{"type":"number"},"x":{"type":"number"},"y":{"type":"number"},"zoom":{"type":"number","minimum":0.02,"maximum":2}},"required":["time","x","y","zoom"],"additionalProperties":false},"maxItems":160,"description":"Strictly increasing time samples within end_seconds−5.3 to end_seconds+0.2; x/y within ±20000."}},"required":["request_id","match_id","end_seconds","camera_path"],"additionalProperties":false}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/moments/{id}/export":{"post":{"operationId":"exportMoment","summary":"Request an MP4 conversion","description":"Only the saving account can request conversion. Queued/rendering is not ready; poll public moment metadata. Ready downloads require no Arena session.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{32}$"},"description":"Stable match or moment ID, as specified by the operation."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"format":{"const":"mp4"}},"required":["format"],"additionalProperties":false}}}},"responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/auth/sso/start":{"get":{"operationId":"signIn","summary":"Start interactive Hybrid-ID sign-in","description":"Authorization Code with PKCE, openid profile. Returns only to a fixed Arena destination. Not an agent-token issuance endpoint.","tags":["Arena application"],"security":[],"x-arena-access":"browser_redirect","x-arena-availability":"available","parameters":[{"name":"returnTo","in":"query","required":false,"description":"Destination after sign-in.","schema":{"enum":["/","/games","/account"]}},{"name":"switch","in":"query","required":false,"description":"Request account switching.","schema":{"enum":["1"]}}],"responses":{"303":{"description":"Browser redirect. Follow only as part of the initiated interactive flow.","headers":{"Location":{"schema":{"type":"string","format":"uri"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/auth/logout":{"post":{"operationId":"signOut","summary":"End this Arena session","description":"Local sign-out does not sign out of other Hybrid applications.","tags":["Arena application"],"security":[{"ArenaSession":[],"ArenaCSRF":[]}],"x-arena-access":"arena_session_csrf","x-arena-availability":"available","responses":{"200":{"description":"Response may report disabled/unavailable feature flags; HTTP 200 alone does not mean an action is enabled.","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/auth/sso/callback":{"post":{"operationId":"identityCallback","summary":"Hybrid-ID protocol callback","description":"form_post callback bound to one-use transaction/state/nonce/PKCE and exact provider origin. Only the identity provider completes this flow.","tags":["Arena application"],"security":[],"x-arena-access":"protocol_callback","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"code":{"type":"string"},"state":{"type":"string"},"iss":{"type":"string"},"error":{"type":"string"}}}}}},"responses":{"303":{"description":"Browser redirect. Follow only as part of the initiated interactive flow.","headers":{"Location":{"schema":{"type":"string","format":"uri"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/player/link/callback":{"post":{"operationId":"playerCallback","summary":"Star Quest linking callback","description":"One-use code/state exchange from the exact Star Quest origin with browser transaction binding. Not a partner ingestion endpoint.","tags":["Arena application"],"security":[],"x-arena-access":"protocol_callback","x-arena-availability":"available","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"code":{"type":"string"},"state":{"type":"string"}},"required":["code","state"],"additionalProperties":false}}}},"responses":{"303":{"description":"Browser redirect. Follow only as part of the initiated interactive flow.","headers":{"Location":{"schema":{"type":"string","format":"uri"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Arena session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Origin, CSRF, ownership or protocol authority rejected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Resource unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Closed window, conflicting request or invalid state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"410":{"description":"Expired recording","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request too large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Retry later","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Feature or upstream unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"507":{"description":"Replay storage full","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"ArenaSession":{"type":"apiKey","in":"cookie","name":"__Host-arena_session","description":"Opaque first-party browser session from Hybrid-ID sign-in to Arena. Not a partner credential."},"ArenaCSRF":{"type":"apiKey","in":"header","name":"x-arena-csrf","description":"Current session CSRF token plus exact Origin https://hybrid-arena.com; cross-site requests rejected."}},"schemas":{"Error":{"type":"object","properties":{"message":{"type":"string"},"success":{"const":false}}},"Health":{"type":"object","properties":{"service":{"const":"hybrid-arena-website"},"status":{"enum":["ok","unavailable"]},"release":{"type":"string"},"wager_execution":{"const":false},"replay_saving_enabled":{"type":"boolean"},"identity_connected":{"type":"boolean"}},"required":["service","status"]},"Team":{"type":"object","properties":{"team":{"type":"integer","minimum":0,"maximum":3},"name":{"type":"string"},"score":{"type":"integer","minimum":0},"kills":{"type":"integer","minimum":0},"deaths":{"type":"integer","minimum":0},"eliminated":{"type":"boolean"}},"required":["team","name","score","kills","deaths","eliminated"]},"Match":{"type":"object","properties":{"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"game":{"const":"starquest"},"room":{"type":"string","maxLength":8},"mode":{"type":"string","enum":["battlefield","bombing","capture","transport"]},"ruleset":{"type":"string"},"status":{"enum":["live","completed","canceled"]},"elapsed_seconds":{"type":"integer","minimum":0,"description":"Integer match projection clock. Use event time for fractional simulation seconds."},"observed_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"human_players":{"type":"integer","minimum":0,"maximum":40},"winner":{"anyOf":[{"type":"integer","minimum":0,"maximum":3},{"type":"null"}]},"teams":{"type":"array","items":{"$ref":"#/components/schemas/Team"},"minItems":4,"maxItems":4},"stale":{"type":"boolean"},"broadcast":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}]},"ended_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"chat_closes_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"completion_reason":{"type":"string"},"match_duration":{"type":"integer","minimum":0},"safe_radius":{"type":"number"}},"required":["match_id","game","room","mode","status","elapsed_seconds","observed_at","human_players","winner","teams","stale","broadcast"]},"Event":{"type":"object","properties":{"id":{"type":"integer","minimum":0},"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"kind":{"enum":["match_started","match_completed","match_canceled","elimination","team_eliminated","gap","recovery"]},"label":{"type":"string"},"time":{"type":"number","minimum":0,"description":"Simulation seconds, possibly fractional. Display three decimal places without claiming millisecond measurement accuracy."},"observed_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."}},"required":["id","match_id","kind","label","time","observed_at"]},"LiveFeed":{"oneOf":[{"type":"object","properties":{"enabled":{"const":false},"matches":{"type":"array","items":{"$ref":"#/components/schemas/Match"}}},"required":["enabled","matches"],"additionalProperties":false},{"type":"object","properties":{"enabled":{"const":true},"source":{"const":"starquest_server"},"synced_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"stale":{"type":"boolean"},"gap":{"type":"boolean"},"activity":{"type":"array","items":{"type":"object","properties":{"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"entries":{"type":"integer","minimum":0},"points":{"type":"integer","minimum":0}},"required":["match_id","entries","points"]}},"matches":{"type":"array","items":{"$ref":"#/components/schemas/Match"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["enabled","source","synced_at","stale","gap","activity","matches"]}]},"Challenge":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-f0-9]{64}$"},"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"kind":{"enum":["damage","possession","nuclear"]},"rules_version":{"const":"arena_challenges_v1"},"mode":{"type":"string","enum":["battlefield","bombing","capture","transport"]},"ruleset":{"anyOf":[{"type":"string"},{"type":"null"}]},"trigger":{"enum":["scheduled","objective_reset","payload_reset"]},"tick_rate":{"const":60},"announced_tick":{"type":"integer","minimum":0},"lock_tick":{"type":"integer","minimum":0},"start_tick":{"type":"integer","minimum":0},"end_tick":{"type":"integer","minimum":0},"observed_tick":{"type":"integer","minimum":0},"observed_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"sequence":{"type":"integer","minimum":0},"unit":{"enum":["damage_milli","possession_ticks","strikes"]},"state":{"enum":["open","locked","running","completed","void"]},"values":{"type":"array","items":{"type":"integer","minimum":0},"minItems":4,"maxItems":4},"winner":{"anyOf":[{"type":"integer","minimum":0,"maximum":4},{"type":"null"}]},"void_reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"evidence_hash":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{64}$"},{"type":"null"}]},"entry_open":{"type":"boolean"},"pool":{"type":"array","items":{"type":"object","properties":{"choice":{"type":"integer","minimum":0,"maximum":4},"points":{"type":"integer","minimum":0}},"required":["choice","points"]}}},"required":["id","match_id","kind","tick_rate","state","entry_open","observed_at","observed_tick","lock_tick","start_tick","end_tick","values","pool"]},"ChallengeFeed":{"type":"object","properties":{"enabled":{"type":"boolean"},"active":{"type":"boolean"},"available":{"type":"boolean"},"stale":{"type":"boolean"},"source":{"type":"object","properties":{"cursor":{"type":"integer","minimum":0},"synced":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"gap":{"enum":[0,1]},"backlog":{"enum":[0,1]}}},"challenges":{"type":"array","items":{"$ref":"#/components/schemas/Challenge"}},"upcoming":{"type":"array","items":{"type":"object","properties":{"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"kind":{"enum":["damage","possession","nuclear"]},"tick_rate":{"const":60},"announces_tick":{"type":"integer","minimum":0},"observed_tick":{"type":"integer","minimum":0},"observed_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."}}}},"balance":{"type":"integer","minimum":0},"pending":{"type":"object","properties":{}},"entries":{"type":"array","items":{"type":"object","properties":{}}}},"required":["enabled","active","challenges"]},"Archive":{"type":"object","properties":{"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"available":{"type":"boolean"},"retention_hours":{"const":36},"mode":{"type":"string","enum":["battlefield","bombing","capture","transport"]},"ended":{"type":"boolean"},"start_seconds":{"type":"number"},"end_seconds":{"type":"number"},"has_gaps":{"type":"boolean"},"first_expires_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"last_expires_at":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."}},"required":["match_id","available","retention_hours"]},"Moment":{"type":"object","properties":{"schema":{"const":"starquest.replay.v1"},"id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"match_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"mode":{"type":"string","enum":["battlefield","bombing","capture","transport"]},"start_seconds":{"type":"number"},"end_seconds":{"type":"number"},"created_at":{"type":"string","format":"date-time"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"playback_rate":{"const":0.5},"intro_ms":{"const":600},"duration_ms":{"const":10600},"exports":{"type":"object","properties":{"mp4":{"type":"object","properties":{"status":{"enum":["not_requested","queued","rendering","ready","failed"]}}},"gif":{"type":"object","properties":{"status":{"enum":["not_requested","queued","rendering","ready","failed","unsupported"]}}}},"required":["mp4","gif"]}},"required":["schema","id","match_id","mode","start_seconds","end_seconds","created_at","expires_at","playback_rate","intro_ms","duration_ms","exports"]},"RelayEnvelope":{"type":"object","properties":{"success":{"const":true},"data":{"description":"Upstream Evercore data. Results are source records; all other relay resources are synthetic demos. Preserve source schema and provenance fields."},"observed_at":{"type":"string","format":"date-time","description":"Time Arena relayed this response; not the event time."}},"required":["success","data","observed_at"]},"Session":{"type":"object","properties":{"enabled":{"type":"boolean"},"user":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"}},"required":["name"]},{"type":"null"}]},"csrf":{"type":"string"},"expires":{"type":"integer","minimum":0},"unavailable":{"type":"boolean"}},"required":["enabled","user"]},"Picks":{"type":"object","properties":{"server_now":{"type":"integer","minimum":0,"description":"Unix milliseconds in UTC. Observation time is not an exact event-occurrence timestamp."},"practice":{"anyOf":[{"type":"object","properties":{}},{"type":"null"}]},"challenges":{"anyOf":[{"$ref":"#/components/schemas/ChallengeFeed"},{"type":"null"}]},"practice_error":{"anyOf":[{"type":"string"},{"type":"null"}]},"challenge_error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["server_now","practice","challenges","practice_error","challenge_error"]}}},"x-arena-manifest":"https://hybrid-arena.com/.well-known/arena.json","x-arena-protocol-callbacks":"Callback security is one-use browser transaction binding and provider/game origin validation. security=[] does not authorize arbitrary callers to complete a callback."}