{"openapi":"3.1.0","info":{"title":"Wrapfans public API","version":"0.29.0-account-deletion-ops","description":"Versioned API with read-only sample catalog plus real PostgreSQL transaction operations. Authentication and database bindings must be configured before runtime business access; local verification uses an isolated database and test-only authenticator. Personalization uses the same session-verified bearer API for web and future native clients; private data is actor-bound and never cached. MFA-protected outbox operations expose redacted failures and allow audit-logged, idempotent replay of an exact event. Administrators can inspect redacted dead letters and idempotently requeue the same event after resolving its cause. Public creator profiles and their works are projected only while currently sale-ready; the public sitemap contains current design and creator paths but no private records. AAL2 administrators can submit private exact-version AI source templates for rights, provider-processing and layout review; approved source images remain private and worker-only. AAL2 operators can inspect and reconcile provider attempts whose authoritative usage is missing; unresolved exposure keeps its USD reserve until invoice reconciliation. Authenticated users can open an idempotent account-deletion request that immediately disables business access; it remains pending until a retention-policy-backed deletion worker is configured. AAL2 administrators can inspect a cursor-paginated, privacy-minimal queue of deletion requests; this does not mark erasure complete."},"servers":[{"url":"/api","description":"Local Web proxy to the separate API Worker; native deployment will have its own API origin"}],"paths":{"/v1/config":{"get":{"operationId":"getConfiguration","responses":{"200":{"description":"Capabilities, not user state","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["api_version","catalog_source","auth_configured","purchase_enabled","ai_enabled"],"properties":{"api_version":{"const":"v1"},"catalog_source":{"enum":["fixture","database"]},"auth_configured":{"type":"boolean"},"purchase_enabled":{"type":"boolean","description":"Configuration capability only; each order still checks current exact resource and account readiness."},"ai_enabled":{"type":"boolean","description":"True only when a provider, model renderer, safety checks, finite budget, and private export path are all ready."}}}}}}}}}}},"/v1/creators/{slug}":{"get":{"operationId":"getPublicCreator","security":[],"parameters":[{"in":"path","name":"slug","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,119}$"}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":512},"description":"Opaque cursor bound to this creator slug."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"Public creator profile and only the author's current published, sale-ready works. Authors without public works return 404. No biography, user ID, email, drafts, rights evidence, private AI items or purchase state is exposed.","responses":{"200":{"description":"Cacheable public creator profile page and the current slice of sale-ready works.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PublicCreatorPage"}}}}}},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/wraps":{"get":{"operationId":"listWraps","parameters":[{"in":"query","name":"model_id","schema":{"type":"string"}},{"in":"query","name":"style","schema":{"enum":["abstract","racing","camo"]}},{"in":"query","name":"color","schema":{"enum":["red","orange","yellow","green","blue","purple","black","white","gray","pink","brown"]}},{"in":"query","name":"q","schema":{"type":"string","maxLength":100}},{"in":"query","name":"sort","schema":{"enum":["featured","newest"],"default":"featured"}},{"in":"query","name":"min_price","schema":{"type":"integer","minimum":0,"maximum":1000}},{"in":"query","name":"max_price","schema":{"type":"integer","minimum":0,"maximum":1000}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":512},"description":"Filter-bound opaque keyset cursor."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"responses":{"200":{"description":"Published sample catalog","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["items","next_cursor","data_source"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicWrap"}},"next_cursor":{"type":["string","null"]},"data_source":{"enum":["fixture","database"]},"models":{"type":"array","items":{"type":"object","required":["id","label"],"additionalProperties":false,"properties":{"id":{"type":"string"},"label":{"type":"string"}}}}}}}}}}},"422":{"$ref":"#/components/responses/ValidationError"}},"description":"Default database projection only. Model/source/receipt/confirmation/review/account readiness required. Explicit fixture mode is illustrative and cannot be an outage fallback."}},"/v1/wraps/{wrap_id}":{"get":{"operationId":"getWrap","parameters":[{"in":"path","name":"wrap_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Public sample wrap only","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PublicWrap"}}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/me":{"get":{"operationId":"getCurrentUser","description":"Remote Supabase-verified identity. Role/financial authorization requires the database-bound profile/session checks.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Private, no-store response. No session identifiers or tokens.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/Identity"}}}}}},"401":{"description":"Missing, invalid or revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account unavailable, insufficient role or MFA required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]},"delete":{"operationId":"requestAccountDeletion","description":"Creates an idempotent asynchronous deletion request and immediately blocks business access. Status requested is not confirmation that account data has been erased; completion awaits the published retention-policy worker.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"202":{"description":"Deletion request accepted. Private, no-store response.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountDeletionRequest"}}}}}},"400":{"$ref":"#/components/responses/InvalidInput"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/wallet":{"get":{"operationId":"getWallet","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Transactional result","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Wallet"}}}}}},"401":{"description":"Missing, invalid, revoked or assurance-mismatched session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/quotes":{"post":{"operationId":"createQuote","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["wrap_id"],"properties":{"wrap_id":{"type":"string","format":"uuid"}}}}}},"responses":{"201":{"description":"Transactional result","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Quote"}}}}}},"400":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, revoked or assurance-mismatched session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/orders":{"post":{"operationId":"purchaseWrap","security":[{"bearerAuth":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["quote_id","confirmed_template_id"],"properties":{"quote_id":{"type":"string","format":"uuid"},"confirmed_template_id":{"type":"string","minLength":1,"maxLength":100}}}}}},"responses":{"201":{"description":"Transactional result","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Order"}}}}}},"400":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing, invalid, revoked or assurance-mismatched session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"description":"Returns the accepted transaction receipt, which may have an old status on idempotent replay. Always read current buyer order/access (or resolve by key) before claiming current download rights. Repeat unknown outcomes with the identical body/key; never automatically retry a purchase with a new key."}},"/v1/orders/{order_id}/disputes":{"post":{"operationId":"openOrderDispute","security":[{"bearerAuth":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason","details"],"properties":{"reason":{"enum":["FILE_CORRUPT","MODEL_MISMATCH","PREVIEW_MISMATCH","COPYRIGHT"]},"details":{"type":"string","minLength":1,"maxLength":2000}}}}}},"responses":{"200":{"description":"Transactional result","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Dispute"}}}}}},"400":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Stable JSON business error; private, no-store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/profile":{"get":{"operationId":"getCurrentProfile","description":"Database-backed profile after binding the current live Supabase session. User metadata never grants role or risk clearance.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Private, no-store response. No session identifiers or tokens.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/Profile"}}}}}},"401":{"description":"Missing, invalid or revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account unavailable, insufficient role or MFA required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/admin/session":{"get":{"operationId":"getAdminSession","description":"Requires a current database admin account and aal2 in both the verified token and live Auth session. Does not grant any moderation or financial mutation by itself.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Private, no-store response. No session identifiers or tokens.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminSession"}}}}}},"401":{"description":"Missing, invalid or revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account unavailable, insufficient role or MFA required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth or database unconfigured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/ledger":{"get":{"operationId":"getCurrentLedger","description":"Own credit entries and source categories only. No other persons identifiers, issuance metadata or resource keys.","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"in":"query","name":"cursor","schema":{"type":"string","minLength":1,"maxLength":128}},{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/LedgerPage"}}}}}},"401":{"description":"Missing/invalid/revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account, admin role, MFA or operator permission requirement failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"State, idempotency, activity or budget conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database not configured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/orders/{id}/provenance":{"get":{"operationId":"getOrderProvenance","description":"Admin + current aal2 only. Shows private origin allocations and previous source order/transaction references for audit; lot parent chains remain immutable in the database.","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store response","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/OrderProvenance"}}}}}},"401":{"description":"Missing/invalid/revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account, admin role, MFA or operator permission requirement failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"State, idempotency, activity or budget conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database not configured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/orders/{id}/dispute-decision":{"post":{"operationId":"resolveOrderDispute","description":"MFA admin decides a currently open dispute once. Reject resumes the original settlement deadline; refund reverses original pending credits and revokes the entitlement.","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200},"description":"Reuse the same key and body after ambiguous network failures; never replay with changed intent."},{"$ref":"#/components/parameters/ExpectedUserId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["outcome","reason"],"properties":{"outcome":{"enum":["refund","reject"]},"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"201":{"description":"Accepted immutable result, including an idempotent replay of the same result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DisputeDecision"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account, admin role, MFA or operator permission requirement failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"State, idempotency, activity or budget conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Request JSON exceeds 16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database not configured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/orders/{id}/compensations":{"post":{"operationId":"compensateOrder","description":"MFA admin only. Requires a settled order and taken_down resource. Issues exactly the original price from finite enabled compensation budget, revokes this entitlement, preserves original settled order and seller credits. No caller amount or beneficiary.","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200},"description":"Reuse the same key and body after ambiguous network failures; never replay with changed intent."},{"$ref":"#/components/parameters/ExpectedUserId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["campaign_id","reason_code","reason"],"properties":{"campaign_id":{"type":"string","format":"uuid"},"reason_code":{"enum":["COPYRIGHT","RESOURCE_FAILURE","MODEL_MISMATCH","PREVIEW_MISMATCH"]},"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"201":{"description":"Accepted immutable result, including an idempotent replay of the same result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Compensation"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account, admin role, MFA or operator permission requirement failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"State, idempotency, activity or budget conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Request JSON exceeds 16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database not configured or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/uploads":{"post":{"operationId":"createUpload","security":[{"bearerAuth":[]}],"description":"Create an immutable input slot for a verified, risk-cleared owner. 15 minute expiry; 20 new slots/Shanghai day, max3 pending. No points charged. Filename is the requested safe ASCII export name; clients may map a local file name to it.","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUpload"}}}},"responses":{"201":{"description":"Idempotent slot; replay returns current state for the same immutable input","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Upload"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/uploads/{id}":{"get":{"operationId":"getUpload","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Own current state. Validated means PNG/file validation only, not real 3D, model licensing or Tesla-device verification.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Upload"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/uploads/{id}/content":{"put":{"operationId":"uploadPng","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Bounded binary PUT with exact declared raw bytes and SHA-256. A 120s nonce lease prevents late overwrite. Static PNG 512–1024 matching template, <=1,000,000 bytes. Strips metadata, preserves bit depth/palette/alpha/interlace, and makes a PRIVATE 256px pixel-watermarked texture. This is not a 3D cover or publication approval.","requestBody":{"required":true,"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Validated canonical private resource, or the same already-validated input","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Upload"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/uploads/{id}/preview":{"get":{"operationId":"getPrivateUploadPreview","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Own validated, nonblocked, private 256x256 watermarked texture only. Not a Tesla-ready original or a car rendering.","responses":{"200":{"description":"Private PNG; no-store, nosniff, no-referrer. Original download is an attachment, preview inline.","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/uploads/{id}/downloads":{"post":{"operationId":"issueOwnUploadDownload","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Own validated private file, even before public submission. Issues a 90s grant; 10 grants/minute/account and20 redeems/grant. Repeated downloads do not debit credits. Fetch with X-Download-Token then save/blob/share; do not navigate the bare URL.","responses":{"201":{"description":"Private no-store grant; the secret is returned once in this response, only its SHA is stored.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DownloadGrant"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/wraps/{id}/downloads":{"post":{"operationId":"issueWrapDownload","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Author or active entitlement only; withdrawal preserves legal access, takedown blocks. Issues a 90s grant; 10 grants/minute/account and20 redeems/grant. Repeated downloads do not debit credits. Fetch with X-Download-Token then save/blob/share; do not navigate the bare URL.","responses":{"201":{"description":"Private no-store grant; the secret is returned once in this response, only its SHA is stored.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/DownloadGrant"}}}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/downloads/{id}":{"get":{"operationId":"redeemDownload","security":[{"downloadGrant":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Rebinds original Auth session and checks account/risk, current entitlement, quarantine and exact revision on every request. Repeated valid fetches are permitted within the grant limits. Verifies actual stored bytes/SHA before sending any PNG. No JWT or secret in URL.","responses":{"200":{"description":"Private PNG; no-store, nosniff, no-referrer. Original download is an attachment, preview inline.","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Missing idempotency key or malformed JSON","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing/invalid/revoked auth or download grant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Account/email/risk or entitlement denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource/upload not available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Lease/state/idempotency conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"410":{"description":"Slot or grant expired","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Payload exceeds byte limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid metadata, hash, dimensions, PNG or format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering quota/rate limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Auth/database/storage unavailable or integrity/deadline failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works":{"get":{"operationId":"listOwnWorks","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":128}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Private no-store result","responses":{"200":{"description":"Private no-store result","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WorkPage"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Create a private immutable revision from OWN validated upload. No client preview_ready/asset keys. Preview job must finish before submission. 40 revisions/Shanghai day.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWork"}}}},"responses":{"201":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}":{"get":{"operationId":"getOwnWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Private no-store result","responses":{"200":{"description":"Private no-store result","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}/revisions":{"post":{"operationId":"createWorkRevision","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"New immutable payload; previous approved version remains sold. Cannot edit a pending review; cancel it explicitly first.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkInput"}}}},"responses":{"201":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}/submit":{"post":{"operationId":"submitWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Owner confirms EXACT ready rendered receipt, not the private 256px texture. Missing model/source/version proof fails closed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["revision_id","receipt_id"],"properties":{"revision_id":{"type":"string","format":"uuid"},"receipt_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}/cancel-review":{"post":{"operationId":"cancelWorkReview","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Verified owner or MFA admin; exact revision/state and idempotency enforced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["revision_id"],"properties":{"revision_id":{"type":"string","format":"uuid"}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}/price":{"patch":{"operationId":"setWorkPrice","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Verified owner or MFA admin; exact revision/state and idempotency enforced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["price_credits","expected_version"],"properties":{"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"expected_version":{"type":"integer","minimum":1}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WorkPrice"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/works/{id}/visibility":{"post":{"operationId":"setWorkVisibility","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Verified owner or MFA admin; exact revision/state and idempotency enforced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["state"],"properties":{"state":{"enum":["published","withdrawn"]}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WorkVisibility"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/creator-profile":{"put":{"operationId":"setCreatorProfile","security":[{"bearerAuth":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Display name is public; stable slug and role are not client-editable.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["display_name"],"properties":{"display_name":{"type":"string","minLength":1,"maxLength":80}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/CreatorProfile"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/revisions/{id}/views/{view}":{"get":{"operationId":"getOwnRenderedView","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"view","required":true,"schema":{"enum":["cover","front","rear","left","right","top","texture"]}},{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private PNG, no-store, audited for moderation views","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/reviews":{"get":{"operationId":"listPendingReviews","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor- and queue-bound ascending keyset cursor. Mutable queue removals do not prevent later pages."}],"description":"MFA-only oldest pending revisions. Duplicate matches and rights evidence are private moderation data. Returns next_cursor; report rows do not expose reporter identity.","responses":{"200":{"description":"MFA-only oldest pending revisions. Duplicate matches and rights evidence are private moderation data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReviewQueue"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/revisions/{id}":{"get":{"operationId":"getReviewRevision","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReviewWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/revisions/{id}/decision":{"post":{"operationId":"reviewRevision","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin reviews rights/source and exact author-confirmed render. Approving a repair never silently republishes a withdrawn or removed work.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["outcome","reason"],"properties":{"outcome":{"enum":["approve","reject"]},"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"201":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReviewDecision"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/revisions/{id}/file/{kind}":{"get":{"operationId":"getModerationFile","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"kind","required":true,"schema":{"enum":["original","texture","cover","front","rear","left","right","top"]}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA+audit moderation-only access, including quarantined originals; not a buyer entitlement shortcut.","responses":{"200":{"description":"Private PNG, no-store, audited for moderation views","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/works/{id}/take-down":{"post":{"operationId":"takeDownWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only; exact revision/state and idempotency enforced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WorkVisibility"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/works/{id}/restore":{"post":{"operationId":"restoreWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Restores technical eligibility to withdrawn only; the owner must explicitly resume sales.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason"],"properties":{"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/WorkVisibility"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/wraps/{id}/reports":{"post":{"operationId":"reportWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Verified active account may complain without risk clearance. Open duplicates deduplicate; max5 new reports/Shanghai day.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["reason_code","details"],"properties":{"reason_code":{"enum":["COPYRIGHT","RESOURCE_FAILURE","MODEL_MISMATCH","PREVIEW_MISMATCH","ABUSE"]},"details":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"201":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ContentReport"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/reports":{"get":{"operationId":"listOpenReports","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor- and queue-bound ascending keyset cursor. Mutable queue removals do not prevent later pages."}],"description":"Private no-store result Returns next_cursor; report rows do not expose reporter identity.","responses":{"200":{"description":"Private no-store result","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ReportQueue"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/reports/{id}/decision":{"post":{"operationId":"decideContentReport","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only; exact revision/state and idempotency enforced.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["action","reason"],"properties":{"action":{"enum":["dismiss","take_down"]},"reason":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"}}}}}},"responses":{"200":{"description":"Accepted immutable operation result. Current work state may have changed since an idempotent replay.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ContentReport"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/previews/{id}/{view}":{"get":{"operationId":"getPublicRenderedPreview","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"path","name":"view","required":true,"schema":{"enum":["cover","front","rear","left","right","top","texture"]}}],"description":"Only active reviewed published content. Returns a rendered PNG or the low-resolution watermarked 256px wrap texture after current database readiness and byte integrity checks; never returns the original Tesla PNG. No-store until purge plumbing is validated.","responses":{"200":{"description":"Public derived PNG/texture, no-store; exact download entitlement is not granted by preview access.","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/models/{id}/preview/{version}":{"get":{"operationId":"getPublicVehiclePreviewModel","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,99}$"}},{"in":"path","name":"version","required":true,"schema":{"type":"integer","minimum":1}}],"security":[],"description":"Publicly fetchable vehicle geometry only when an AAL2 reviewer attested that the model license permits web delivery and the exact current model/template version in the URL is enabled and used by a sale-ready listing. Origin object remains in private R2; API verifies its hash on each response and never includes an R2 key in JSON. This is not the creator's final wrap PNG.","responses":{"200":{"description":"GLB model/gltf-binary, bounded to 25 MB; no-store and nosniff.","content":{"model/gltf-binary":{"schema":{"type":"string","format":"binary"}}}},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/models":{"get":{"operationId":"getModels","security":[],"summary":"Read real database template dimensions and preview registration status","description":"Always database-backed, even if the gallery is in fixture mode. No example template or licensed/fit claim is substituted on outage. Never returns model keys or license/calibration evidence.","responses":{"200":{"description":"Public cacheable template metadata","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["items","data_source"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicTemplate"}},"data_source":{"const":"database"}}}}}}}},"503":{"description":"Database metadata unavailable, no fallback"}}}},"/v1/me/wraps/{id}/access":{"get":{"operationId":"getWrapAccess","security":[{"bearerAuth":[]}],"description":"Read the current actors access only. No original storage keys. Owners and previously entitled buyers may read withdrawn records; other private records are not found. can_download is authorization, not a promise of storage uptime.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/WrapAccess"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/quotes/{id}":{"get":{"operationId":"getQuoteSnapshot","security":[{"bearerAuth":[]}],"description":"Read this buyers exact quote revision/model/amount and current validity. A snapshot never changes the accepted price; changed/expired quotes require a new explicit confirmation.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/QuoteSnapshot"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/orders":{"get":{"operationId":"listBuyerOrders","security":[{"bearerAuth":[]}],"description":"Only this buyers immutable purchase references with current order and decision state. Does not expose seller/buyer email addresses or financial origins.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/BuyerOrderPage"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope-bound keyset cursor."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/orders/{id}":{"get":{"operationId":"getBuyerOrder","security":[{"bearerAuth":[]}],"description":"Read the current state of an order owned by this buyer; other users UUIDs return ORDER_NOT_FOUND. Final dispute decisions cannot be reopened.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/BuyerOrder"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/purchase-attempts/resolve":{"post":{"operationId":"resolvePurchaseAttempt","security":[{"bearerAuth":[]}],"description":"Read-only recovery. Waits for an already-running purchase sharing the same actor/key lock. Returns the current order, including refunds, not the old receipt status. order:null does not prove a delayed original request can never arrive. Never retry with a new key until a definitive rejection is known.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/PurchaseResolution"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"idempotency_key":{"type":"string","minLength":1,"maxLength":200}},"required":["idempotency_key"]}}}},"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/library":{"get":{"operationId":"listLibrary","security":[{"bearerAuth":[]}],"description":"Purchased entitlements and authored sources are separate scopes. Withdrawn purchases keep rights; refunded/removed resources remain explainable without download access. Author drafts use owned-upload grants, never buyer rights.","responses":{"200":{"description":"Private, no-store result; no original key or download token.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/LibraryPage"}},"required":["data"]}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":[{"name":"kind","in":"query","schema":{"type":"string","enum":["purchased","created"],"default":"purchased"}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope-bound keyset cursor."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}]}},"/v1/me/library/{id}/preview":{"get":{"operationId":"getPrivateLibraryPreview","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Authorized derived pixels only. May be a watermarked texture for an author draft, not necessarily a vehicle render. Never the original. Private no-store.","responses":{"200":{"description":"Private derived PNG","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store JSON business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/promotions":{"get":{"operationId":"getPromotions","security":[],"description":"Public no-store database-backed finite promotion availability. No default campaigns, budget amounts or private IDs. accepting is not a confirmed reward reservation.","responses":{"200":{"description":"Current campaign availability","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/Promotions"}},"required":["data"]}}}},"503":{"description":"Promotion metadata unavailable, no fixture fallback"}}}},"/v1/me/rewards":{"get":{"operationId":"getMyRewards","description":"Read the current actors actual signup reservation and issuance. GET never grants. Timely verification preserves accepted budget while review/processing is delayed.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MyRewards"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/rewards/signup/claim":{"post":{"operationId":"claimSignupReward","description":"Natural idempotent conditional claim, fixed1000 once after current verification/risk eligibility. No client campaign/amount. Repeated calls read current status, not a stale pending receipt.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MyRewards"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{},"required":[]}}}}}},"/v1/me/rewards/signup/reapply":{"post":{"operationId":"reapplySignupReward","description":"Only a previously accepted expired reservation may be renewed under currently accepting finite promotion. Active or granted retries return the same current reservation. Existing never-accepted accounts cannot become new signups.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/MyRewards"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{},"required":[]}}}}}},"/v1/me/referrals":{"get":{"operationId":"getMyReferrals","description":"Own anonymous first-registration attribution progress. id is a separate referral alias, not a friends user UUID. Used slots are reserved/granted within the captured Shanghai month. invite_url uses trusted configured Web origin, nullable if unavailable.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope-bound cursor, unchanged by the client."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ReferralPage"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/referrals/check":{"post":{"operationId":"checkMyReferrals","description":"Re-evaluate up to50 owned opaque referral aliases. Current independent settled/risk-cleared order and reserved budget remain authoritative. Cannot choose campaign, actor, friend UUID, risk clearance or amounts. No automatic worker is implied.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/ReferralPage"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"referral_ids":{"type":"array","maxItems":50,"items":{"type":"string","format":"uuid"}}},"required":["referral_ids"]}}}}}},"/v1/me/creator/earnings":{"get":{"operationId":"getCreatorEarnings","description":"Own sale-credit records only, no buyer identity. Historical settled credits differ from the wallet spendable balance. No cash value, withdrawal, top-up or transfer.","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope-bound cursor, unchanged by the client."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"responses":{"200":{"description":"Private no-store result; no friend email, real user UUID or qualifying order ID.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/CreatorEarnings"}},"required":["data"]}}}},"400":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Private, no-store standard business/session error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/works/{id}":{"get":{"operationId":"getCurrentModerationWork","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA-only current work and author/template context. Not a snapshot of the work at report time. Contains no storage keys or buyer identity.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminWork"}}}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/campaigns":{"get":{"operationId":"listAdminCampaigns","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope/parent-bound keyset cursor; refresh for new mutable queue items."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminCampaignPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createDisabledFiniteCampaign","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"201":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminCampaign"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["signup","referral","compensation"]},"total_budget":{"type":"integer","minimum":0,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["kind","total_budget","reason"]}}}}}},"/v1/admin/campaigns/{id}":{"get":{"operationId":"getAdminCampaign","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminCampaign"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/campaigns/{id}/configuration":{"post":{"operationId":"configureFiniteCampaign","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. CAS configuration with server effective time. Cannot lower below reserved + spent; disabling never revokes accepted reservations. Replay returns original immutable receipt; GET for current counters.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminCampaign"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":0,"maximum":2147483646},"enabled":{"type":"boolean"},"total_budget":{"type":"integer","minimum":0,"maximum":9007199254740991},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["expected_version","enabled","total_budget","reason"]}}}}}},"/v1/admin/promotions":{"get":{"operationId":"getAdminPromotionSelection","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminPromotions"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"selectCurrentPromotionCampaigns","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. Version 0 is unconfigured; nullable campaign IDs close new acceptance. Kinds must match. Never rebind historical registrations. No retroactive/default unlimited budget.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminPromotions"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":0,"maximum":2147483646},"signup_campaign_id":{"type":["string","null"],"format":"uuid"},"referral_campaign_id":{"type":["string","null"],"format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["expected_version","signup_campaign_id","referral_campaign_id","reason"]}}}}}},"/v1/admin/accounts":{"get":{"operationId":"listAdminAccounts","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope/parent-bound keyset cursor; refresh for new mutable queue items."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"in":"query","name":"filter","schema":{"enum":["review","suspended","all"],"default":"review"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminAccountPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/accounts/{id}":{"get":{"operationId":"getAdminRiskAccount","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminAccount"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/accounts/{id}/risk":{"post":{"operationId":"recordAdminAccountRisk","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. CAS includes Auth/role/risk state changes. Cannot modify role, verification, bans, deletion or balances. Self-suspension removes later access even if the command committed. OPERATIONS_BUSY is retryable with the same key; no automatic replay.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminAccount"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":0,"maximum":2147483646},"state":{"enum":["active","suspended"]},"risk_cleared":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["expected_version","state","risk_cleared","reason"]}}}}}},"/v1/admin/accounts/{id}/links":{"get":{"operationId":"listAdminAccountAssociations","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope/parent-bound keyset cursor; refresh for new mutable queue items."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AccountLinkPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"recordConfirmedAccountAssociation","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. Pair version 0 creates a new record; UUID order is normalized. Shared IP alone is forbidden. Active graph checks are transitive; deactivation keeps history and never rewrites past grants.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminAssociationRecord"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"other_user_id":{"type":"string","format":"uuid"},"expected_version":{"type":"integer","minimum":0,"maximum":2147483646},"active":{"type":"boolean"},"evidence_basis":{"enum":["shared_control","verified_ownership","confirmed_coordination"]},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["other_user_id","expected_version","active","evidence_basis","reason"]}}}}}},"/v1/admin/orders":{"get":{"operationId":"listAdminOperationsOrders","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope/parent-bound keyset cursor; refresh for new mutable queue items."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"in":"query","name":"filter","schema":{"enum":["disputed","risk","all"],"default":"disputed"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminOrderPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/orders/{id}":{"get":{"operationId":"getAdminOperationsOrder","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminOrder"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/orders/{id}/risk":{"post":{"operationId":"recordAdminOrderRisk","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"MFA admin only. CAS on current order status/risk version; eligibility review is not a refund, settlement, compensation or retroactive reward reversal.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminOrder"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":0,"maximum":2147483646},"risk_state":{"enum":["review","clear","blocked"]},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["expected_version","risk_state","reason"]}}}}}},"/v1/admin/audit":{"get":{"operationId":"listImmutableAdminAudit","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor/scope/parent-bound keyset cursor; refresh for new mutable queue items."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"MFA admin only. Current server checks, private no-store, append-only audit; no direct balance or role editing.","responses":{"200":{"description":"MFA-only. review_revision is the EXACT requested historical payload; active/working revisions are separate.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminAuditPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/support/options":{"get":{"operationId":"getSupportCapabilities","security":[],"parameters":[],"description":"Public metadata from configured bindings only; independent of cookies or bearer. Availability flag is configuration, not an upstream health guarantee. Unconfigured contact is null; no invented email/notification/SLA.","responses":{"200":{"description":"Configured public support options; no identity or case data.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportOptions"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/support/tickets":{"get":{"operationId":"listMySupportTickets","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor, purpose/view and parent-bound cursor. Messages return newest-first; render by ticket_version for immutable conversation order."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Authenticated registered-email owner only, support-purpose binding. Current Auth session/user/ban/deletion still checked. Manual suspension, risk review or unverified email may use support but cannot use business APIs. No automatic role/account/credit/refund change. Private no-store/no-referrer, own tickets only.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportTicketPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createPrivateSupportTicket","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"Authenticated registered-email owner only, support-purpose binding. Current Auth session/user/ban/deletion still checked. Manual suspension, risk review or unverified email may use support but cannot use business APIs. No automatic role/account/credit/refund change. Private no-store/no-referrer, own tickets only. Unicode codepoint limits, nonblank, NUL rejected. Order issue requires own buyer/seller order (including settled/old); account appeal has no target; content issue requires public/owned/previously purchased work. Three new tickets and twenty owner messages per Asia/Shanghai day, including the first message. Only one active same kind/target. Idempotent original receipt; GET current case afterwards.","responses":{"201":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportReceipt"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Support JSON body exceeds 32 KiB; all text also has the declared Unicode codepoint limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"kind":{"enum":["account_appeal","order_issue","content_issue","other"]},"subject":{"type":"string","minLength":1,"maxLength":120},"details":{"type":"string","minLength":1,"maxLength":4000},"order_id":{"type":["string","null"],"format":"uuid"},"work_id":{"type":["string","null"],"format":"uuid"}},"required":["kind","subject","details","order_id","work_id"]}}}}}},"/v1/me/support/tickets/{id}":{"get":{"operationId":"getMySupportTicket","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Authenticated registered-email owner only, support-purpose binding. Current Auth session/user/ban/deletion still checked. Manual suspension, risk review or unverified email may use support but cannot use business APIs. No automatic role/account/credit/refund change. Private no-store/no-referrer, own tickets only.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportTicket"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/support/tickets/{id}/messages":{"get":{"operationId":"listMySupportMessages","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor, purpose/view and parent-bound cursor. Messages return newest-first; render by ticket_version for immutable conversation order."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Authenticated registered-email owner only, support-purpose binding. Current Auth session/user/ban/deletion still checked. Manual suspension, risk review or unverified email may use support but cannot use business APIs. No automatic role/account/credit/refund change. Private no-store/no-referrer, own tickets only. No staff UUID/email or private audit reason in message projection.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportMessagePage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"replyToMySupportTicket","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"Authenticated registered-email owner only, support-purpose binding. Current Auth session/user/ban/deletion still checked. Manual suspension, risk review or unverified email may use support but cannot use business APIs. No automatic role/account/credit/refund change. Private no-store/no-referrer, own tickets only. CAS/versioned immutable message, twenty owner messages/day. Replying reopens a resolved case, but closed cases cannot be replied to. A second active same topic prevents reopening. No automatic dispute reopening.","responses":{"201":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportReceipt"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Support JSON body exceeds 32 KiB; all text also has the declared Unicode codepoint limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":1,"maximum":2147483646},"body":{"type":"string","minLength":1,"maxLength":4000}},"required":["expected_version","body"]}}}}}},"/v1/admin/support/tickets":{"get":{"operationId":"listAdminSupportTickets","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor, purpose/view and parent-bound cursor. Messages return newest-first; render by ticket_version for immutable conversation order."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"in":"query","name":"filter","schema":{"enum":["open","waiting_user","resolved","closed","all"],"default":"open"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Current MFA admin only, ordinary business-purpose binding. Append-only public-to-owner message plus separate private audit reason; no automatic account/financial decision. Mutable oldest-updated queue; refresh for new incoming messages.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminSupportTicketPage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/support/tickets/{id}":{"get":{"operationId":"getAdminSupportTicket","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Current MFA admin only, ordinary business-purpose binding. Append-only public-to-owner message plus separate private audit reason; no automatic account/financial decision. Owner account fields are current, not the state at submission time.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/AdminSupportTicket"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/support/tickets/{id}/messages":{"get":{"operationId":"listAdminSupportMessages","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1024},"description":"Opaque actor, purpose/view and parent-bound cursor. Messages return newest-first; render by ticket_version for immutable conversation order."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}},{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Current MFA admin only, ordinary business-purpose binding. Append-only public-to-owner message plus separate private audit reason; no automatic account/financial decision.","responses":{"200":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportMessagePage"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Creator metadata >32 KiB; other JSON >16 KiB","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/admin/support/tickets/{id}/reply":{"post":{"operationId":"replyToSupportTicketAsStaff","security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"Current MFA admin only, ordinary business-purpose binding. Append-only public-to-owner message plus separate private audit reason; no automatic account/financial decision. All text is nonblank and NUL-free, 32KiB JSON cap. A public reply is required for a state change; CAS and idempotency prevent silent overwrite/duplicate messages. Owner quota lock precedes ticket row lock. Closed/resolved reactivation cannot duplicate an existing active same topic.","responses":{"201":{"description":"Private support result for the authorized owner or current MFA staff; receipt acknowledges the original message, not an automatic financial or account decision.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/SupportReceipt"}},"required":["data"]}}}},"400":{"description":"Malformed JSON/missing idempotency key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Auth/session required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Owner/admin/MFA/email/risk permission denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Resource not found or not public","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"408":{"description":"Request body timed out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Revision/preview/template/price/review state conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"413":{"description":"Support JSON body exceeds 32 KiB; all text also has the declared Unicode codepoint limits.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Invalid fields or range","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Temporary engineering rate/quota; Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"503":{"description":"Service unavailable; no synthetic fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"expected_version":{"type":"integer","minimum":1,"maximum":2147483646},"state":{"enum":["open","waiting_user","resolved","closed"]},"reply":{"type":"string","minLength":1,"maxLength":4000},"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["expected_version","state","reply","reason"]}}}}}},"/v1/me/favorites":{"get":{"operationId":"listMyFavorites","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"Private, actor-bound keyset page. Unavailable works expose no private title, preview, original file or rights evidence. Cursors are actor-scoped.","responses":{"200":{"description":"Current account-owned state. This response is private and non-cacheable.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FavoritePage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/favorites/{workId}":{"get":{"operationId":"getMyFavorite","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"workId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Read the caller’s save status for a real public listing. Does not accept demo fixture slugs.","responses":{"200":{"description":"Current account-owned state. This response is private and non-cacheable.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FavoriteItem"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"put":{"operationId":"setMyFavorite","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"workId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["saved"],"properties":{"saved":{"type":"boolean"}}}}}},"description":"Idempotent save/remove for a verified public sale-ready work. No credits, purchase access, or download rights are changed.","responses":{"200":{"description":"Current account-owned state. This response is private and non-cacheable.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/FavoriteItem"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/preferences":{"get":{"operationId":"getMyPreferences","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Read this account’s versioned default discovery model preference.","responses":{"200":{"description":"Current account-owned state. This response is private and non-cacheable.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MemberPreferences"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"put":{"operationId":"setMyPreferences","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected_version","default_model_id"],"properties":{"expected_version":{"type":"integer","minimum":0},"default_model_id":{"type":["string","null"],"maxLength":100}}}}}},"description":"CAS update; only server-catalog templates with verified license and UV may be selected. A preference is not a fit/import guarantee and never implicitly affects public SSR, a quote, or purchase.","responses":{"200":{"description":"Current account-owned state. This response is private and non-cacheable.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/MemberPreferences"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/outbox":{"get":{"operationId":"listAdminOutbox","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"Current administrator role and AAL2 are verified by PostgreSQL. Lists only dead-letter/dispatch-stalled metadata; it never returns raw event payload or account PII. Private no-store/no-referrer.","responses":{"200":{"description":"Private AAL2 administrator response; no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminOutboxPage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/outbox/{eventId}/replay":{"post":{"operationId":"replayAdminOutbox","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"eventId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected_attempt","reason"],"properties":{"expected_attempt":{"type":"integer","minimum":1},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"description":"MFA/AAL2 administrator only. Replays only the current dead-letter generation, after the operator records a reason. It requeues the same immutable event and never changes/forges the domain result. Audit before/after is written.","responses":{"200":{"description":"Private AAL2 administrator response; no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminOutboxReplay"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/site-index":{"get":{"operationId":"getPublicSiteIndex","parameters":[],"description":"Public, read-only sitemap source. Returns canonical slugs for currently published sale-ready database works and creator pages with at least one such work. Combined entries reserve four static URLs under the 50,000 URL-set limit; truncated projections and fixture/unavailable data fail closed. No private identity or storage keys are exposed.","responses":{"200":{"description":"Complete database projection of public work and creators only, bounded so that the final sitemap remains under 50,000 URLs including four static pages.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/PublicSiteIndex"}}}}}},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/ai/generations":{"get":{"operationId":"listAiGenerations","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":1024}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"Actor-bound keyset page for the authenticated user’s AI tasks. Cursor is not an authorization token. Returns no private R2 keys; response is private/no-store.","responses":{"200":{"description":"Account-owned generation tasks. Private/no-store; never includes private object keys.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AiGenerationPage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"post":{"operationId":"createAiGeneration","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":128},"description":"Reuse the same key and exact request after an unknown outcome."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["template_id","prompt","style","color"],"properties":{"template_id":{"type":"string","minLength":1,"maxLength":100},"prompt":{"type":"string","minLength":3,"maxLength":600},"style":{"enum":["abstract","gradient","camo","racing"]},"color":{"type":"string","minLength":2,"maxLength":40}}}}}},"description":"Charges only the server-configured credit price by first moving credits to held. Requires an enabled finite AI budget, current licensed/UV-verified public renderer, and an AAL2-approved exact-version private PNG source with provider-processing and derivative rights evidence. Disabled until a real provider, usage billing, moderation and authorized assets are configured.","responses":{"201":{"description":"Task accepted. Successful generation remains private; export access requires a configured, authorized delivery capability.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AiGenerationReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"429":{"description":"Account AI quota reached."},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/ai/generations/{id}":{"get":{"operationId":"getAiGeneration","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Poll only a generation owned by the authenticated actor. Never returns a private object path or signed download URL.","responses":{"200":{"description":"Current account-owned generation. Private/no-store and excludes all private asset keys.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AiGeneration"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/ai/generations/{id}/cancel":{"post":{"operationId":"cancelAiGeneration","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Cancels and releases credits only while queued. A processing task is not synchronously canceled; terminal states remain terminal.","responses":{"200":{"description":"Current account-owned generation. Private/no-store and excludes all private asset keys.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AiGenerationCancelReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai/settings":{"get":{"operationId":"getAdminAiGenerationSettings","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"Read the versioned AI credit price, per-user limits and provider-cost budget. Requires a current administrator session at AAL2. No provider credentials are stored or returned. The Cloudflare AI_GENERATION_ENABLED release gate is independent.","responses":{"200":{"description":"Private AAL2 administrator snapshot. This reports database budget settings but does not override the separate runtime release gate.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiGenerationSettings"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"post":{"operationId":"updateAdminAiGenerationSettings","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200},"description":"Retry the identical body/key after an unknown outcome."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected_version","enabled","credit_price","daily_task_limit","active_task_limit","budget_limit_microusd","max_task_cost_microusd","acknowledge_budget_breach","reason"],"properties":{"expected_version":{"type":"integer","minimum":1},"enabled":{"type":"boolean","description":"Database admission preference only; a distinct Cloudflare release gate must also be open."},"credit_price":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"daily_task_limit":{"type":"integer","minimum":1,"maximum":10},"active_task_limit":{"type":"integer","minimum":1,"maximum":3},"budget_limit_microusd":{"type":"integer","minimum":0,"maximum":9007199254740991},"max_task_cost_microusd":{"type":"integer","minimum":0,"maximum":9007199254740991},"acknowledge_budget_breach":{"type":"boolean","description":"Only true after reconciling a recorded provider-cost breach; every recovery is audited."},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"description":"AAL2-only, compare-and-set configuration with immutable before/after audit. If enabled, both total budget and per-task maximum reserve must be positive. Budget and costs use integer USD microunits. Existing spent/reserved amounts cannot be reduced. Clearing a breach requires an explicit acknowledgement and a new ceiling that covers reconciled spend, reservations and one maximum-cost task. Does not change the runtime release gate or provider secrets.","responses":{"200":{"description":"Private AAL2 administrator snapshot. This reports database budget settings but does not override the separate runtime release gate.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiGenerationSettings"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models":{"get":{"operationId":"getAdminVehicleModels","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"AAL2-only model/rights/UV readiness listing. It includes bounded evidence text and hashes but no asset keys or object URLs. A readiness state reports recorded metadata and admin attestation; this endpoint does not itself validate a real device calibration or confirm an R2 object exists.","responses":{"200":{"description":"Current AAL2 administrator model status; private/no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminVehicleModelCatalog"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models/{templateId}/preview-model-state":{"post":{"operationId":"setAdminPreviewModelState","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"templateId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,99}$"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["model_id","expected_state_version","enabled","confirm_current_evidence","reason"],"properties":{"model_id":{"type":"string","maxLength":80},"expected_state_version":{"type":"integer","minimum":1},"enabled":{"type":"boolean"},"confirm_current_evidence":{"type":"boolean","description":"Required before enabling. The administrator attests they independently reviewed rights and actual-device UV calibration evidence."},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"description":"AAL2-only CAS and immutable audit for enabling/disabling the currently registered preview model. Enabling records administrator attestation; the service does not independently verify the underlying license, model object or vehicle calibration. No endpoint currently registers/uploads new vehicle assets.","responses":{"200":{"description":"Current model state receipt; private/no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminPreviewModelStateReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models/submissions":{"get":{"operationId":"listAdminModelSubmissions","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"state","in":"query","schema":{"type":["string","null"],"enum":["awaiting_asset","pending_review","approved","rejected","all"],"default":"pending_review"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"AAL2-only private review list. Model object keys are never included. Evidence refers to admin-entered source material and must be checked manually.","responses":{"200":{"description":"Current matching submissions, private/no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminModelSubmissionPage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"post":{"operationId":"createAdminModelSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["template_id","template_version","filename","bytes","sha256","license_evidence","calibration_evidence","evidence_reference"],"properties":{"template_id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,99}$"},"template_version":{"type":"integer","minimum":1},"filename":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}\\.glb$"},"bytes":{"type":"integer","minimum":40,"maximum":25000000},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"license_evidence":{"type":"string","minLength":3,"maxLength":2000},"calibration_evidence":{"type":"string","minLength":3,"maxLength":2000},"evidence_reference":{"type":"string","minLength":3,"maxLength":1000}}}}}},"description":"Creates a private upload intent only. It does not register a model or mark any template ready. GLB bytes, SHA-256, version, rights and actual-device calibration evidence are independently checked before approval.","responses":{"201":{"description":"Private staging upload intent.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminModelSubmissionReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"429":{"description":"The current administrator submission limit was reached."},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models/submissions/{id}":{"get":{"operationId":"getAdminModelSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Read the private staging/review status. Never returns the R2 object key.","responses":{"200":{"description":"Current AAL2 admin model submission.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminModelSubmission"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models/submissions/{id}/asset":{"put":{"operationId":"uploadAdminModelAsset","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"model/gltf-binary":{"schema":{"type":"string","format":"binary"}},"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"description":"Uploads a bounded private GLB into staging. The service validates the GLB 2 header/chunks, denies external resource URIs, and checks expected size and SHA-256. No public URL is returned.","responses":{"200":{"description":"Uploaded asset is now pending AAL2 evidence review.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminModelUploadReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/InvalidInput"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"get":{"operationId":"downloadAdminModelAssetForReview","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Reads a private pending-review GLB for AAL2 human inspection. The asset read is audited. The response is attachment/no-store with no object path.","responses":{"200":{"description":"Private validated GLB attachment.","content":{"model/gltf-binary":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/models/submissions/{id}/review":{"post":{"operationId":"reviewAdminModelSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected_version","outcome","license_confirmed","calibration_confirmed","public_preview_confirmed","reason"],"properties":{"expected_version":{"type":"integer","minimum":1},"outcome":{"enum":["approve","reject"]},"license_confirmed":{"type":"boolean"},"calibration_confirmed":{"type":"boolean"},"public_preview_confirmed":{"type":"boolean","description":"True only after independently confirming the exact GLB license explicitly allows public browser delivery for 3D preview."},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"description":"AAL2-only immutable decision. Approve requires explicit source-rights, public browser-delivery rights, and real-device calibration confirmations; it re-verifies the private GLB before registering a disabled model row. The public model endpoint remains gated on separately enabling the exact current model.","responses":{"200":{"description":"Decision receipt; approved model remains disabled.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminModelReviewReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai-templates/submissions":{"get":{"operationId":"listAdminAiTemplateSubmissions","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"state","in":"query","schema":{"type":["string","null"],"enum":["awaiting_asset","pending_review","approved","rejected","revoked","all"],"default":"pending_review"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"description":"AAL2-only private queue. Source rights, provider-processing terms and layout evidence are administrative attestations, not independently verified legal conclusions. Never returns object storage keys.","responses":{"200":{"description":"Private matching source-template submissions.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiTemplateSubmissionPage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"post":{"operationId":"createAdminAiTemplateSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"Creates a private upload intent for the exact current vehicle-template version. The reviewer records rights to transmit this source image to the selected image provider, rights to use derivatives, and editable-region/layout validation. The intent does not enable AI.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["template_id","template_version","filename","bytes","sha256","rights_evidence","provider_evidence","layout_evidence","evidence_reference"],"properties":{"template_id":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,99}$"},"template_version":{"type":"integer","minimum":1},"filename":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}\\.png$"},"bytes":{"type":"integer","minimum":57,"maximum":1000000},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"rights_evidence":{"type":"string","minLength":3,"maxLength":2000},"provider_evidence":{"type":"string","minLength":3,"maxLength":2000},"layout_evidence":{"type":"string","minLength":3,"maxLength":2000},"evidence_reference":{"type":"string","minLength":3,"maxLength":1000}}}}}},"responses":{"201":{"description":"Private upload intent; no object key is returned.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiTemplateSubmissionReceipt"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"429":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai-templates/submissions/{id}":{"get":{"operationId":"getAdminAiTemplateSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"AAL2-only private source-template status and evidence. Never returns storage keys.","responses":{"200":{"description":"Private submission record.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiTemplateSubmission"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai-templates/submissions/{id}/asset":{"put":{"operationId":"uploadAdminAiTemplateAsset","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Uploads a bounded PNG matching the expected SHA-256 and exact current template dimensions. The API strips metadata, re-encodes a canonical PNG, and stores it privately; it never returns an object key.","requestBody":{"required":true,"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"Private upload validated and queued for human review.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiTemplateUploadReceipt"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"413":{"$ref":"#/components/responses/InvalidInput"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}},"get":{"operationId":"downloadAdminAiTemplateAssetForReview","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"AAL2-only audited read of the private canonical source PNG for rights and layout review. Attachment, no-store, no-referrer.","responses":{"200":{"description":"Private canonical PNG attachment.","content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai-templates/submissions/{id}/review":{"post":{"operationId":"reviewAdminAiTemplateSubmission","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"description":"AAL2-only immutable review with version CAS. Approval requires separate rights, provider processing and retention, and editable-layout confirmations for the exact source image. Revocation immediately removes the source from worker reads.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["expected_version","outcome","rights_confirmed","provider_confirmed","layout_confirmed","reason"],"properties":{"expected_version":{"type":"integer","minimum":1},"outcome":{"enum":["approve","reject","revoke"]},"rights_confirmed":{"type":"boolean"},"provider_confirmed":{"type":"boolean"},"layout_confirmed":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"responses":{"200":{"description":"Review receipt; asset remains private.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiTemplateReviewReceipt"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai/cost-pending":{"get":{"operationId":"listAdminAiCostPending","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"}],"description":"AAL2-only private list of generation attempts with unknown provider usage. Does not return prompts, source images, private asset keys or generated images. USD reserves remain held until invoice-confirmed reconciliation.","responses":{"200":{"description":"Provider-cost reconciliation queue; private/no-store.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiCostPendingPage"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/ai/cost-pending/{generationId}/{attemptNo}/reconcile":{"post":{"operationId":"reconcileAdminAiProviderCost","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"$ref":"#/components/parameters/IdempotencyKey"},{"name":"generationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"attemptNo","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":20}}],"description":"AAL2-only manual cost reconciliation. Requires an explicit confirmation that provider invoice was checked, integer micro-USD actual cost and a reason. Reconciles each attempt once, releases its USD reserve and trips the cost breaker if spend exceeds the reserve/budget. The failed image task is never revived.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["actual_cost_microusd","invoice_confirmed","reason"],"properties":{"actual_cost_microusd":{"type":"integer","minimum":0,"maximum":9007199254740991},"invoice_confirmed":{"type":"boolean"},"reason":{"type":"string","minLength":1,"maxLength":2000}}}}}},"responses":{"200":{"description":"Immutable invoice reconciliation receipt; no generation output is published.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AdminAiCostReconciliationReceipt"}}}}}},"400":{"$ref":"#/components/responses/ValidationError"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/ai/generations/{id}/preview":{"get":{"operationId":"getAiGenerationPreview","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Authenticated owner-only, current-rights-gated 256px watermarked PNG preview. Private/no-store; the response never exposes an R2 key or signed URL.","responses":{"200":{"description":"Authenticated owner-only, current-rights-gated 256px watermarked PNG preview. Private/no-store; the response never exposes an R2 key or signed URL.","headers":{"Cache-Control":{"schema":{"type":"string","example":"private, no-store"}},"Referrer-Policy":{"schema":{"type":"string","example":"no-referrer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/ai/generations/{id}/file":{"get":{"operationId":"downloadAiGenerationFile","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/ExpectedUserId"},{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"description":"Authenticated owner-only, current-rights-gated original PNG output. Private/no-store; the response never exposes an R2 key or signed URL.","responses":{"200":{"description":"Authenticated owner-only, current-rights-gated original PNG output. Private/no-store; the response never exposes an R2 key or signed URL.","headers":{"Cache-Control":{"schema":{"type":"string","example":"private, no-store"}},"Referrer-Policy":{"schema":{"type":"string","example":"no-referrer"}}},"content":{"image/png":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/me/deletion-request":{"get":{"operationId":"getAccountDeletionRequest","description":"Returns the signed-in user’s privacy-minimal deletion-request receipt, even after business access has been disabled. Null means no request has been accepted.","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Private, no-store account deletion request status.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/AccountDeletionRequest"},{"type":"null"}]}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/v1/admin/account-deletion-requests":{"get":{"operationId":"listAdminAccountDeletionRequests","description":"AAL2 read-only operator queue. It returns request UUID, status and timestamp only; it does not complete or erase an account.","security":[{"bearerAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":1024}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":24}}],"responses":{"200":{"description":"Private, no-store paginated deletion request queue.","content":{"application/json":{"schema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"data":{"type":"object","required":["items","next_cursor"],"additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AccountDeletionRequest"}},"next_cursor":{"type":["string","null"]}}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"422":{"$ref":"#/components/responses/InvalidInput"},"503":{"$ref":"#/components/responses/Unavailable"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"Supabase access token"},"downloadGrant":{"type":"apiKey","in":"header","name":"X-Download-Token","description":"90-second single-resource capability from POST downloads. Never put the secret in URL/history/logs. Redeem rechecks the original live Auth session and current rights."}},"schemas":{"PublicWrap":{"type":"object","additionalProperties":false,"required":["id","title","model_id","model_label","author","description","style","price_credits","preview","validation_status","importable"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"model_id":{"type":"string"},"model_label":{"type":"string"},"author":{"type":"object","required":["name","slug"],"properties":{"name":{"type":"string"},"slug":{"type":["string","null"],"description":"Only present when the creator has chosen a non-placeholder public display name."}}},"description":{"type":"string"},"style":{"enum":["abstract","racing","camo"]},"price_credits":{"type":"integer","minimum":0},"preview":{"type":"object","required":["url","width","height"],"properties":{"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"receipt_id":{"type":"string","format":"uuid"},"model_url":{"type":["string","null"],"description":"Only present for current sale-ready templates whose public preview rights were separately attested."},"texture_url":{"type":"string","description":"Public low-resolution watermarked UV texture, never the buyer's original PNG."},"views":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["view","url","width","height"],"properties":{"view":{"type":"string"},"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"}}}}}},"validation_status":{"enum":["concept_only","reviewed"]},"importable":{"type":"boolean"},"slug":{"type":"string"},"colors":{"type":"array","minItems":1,"maxItems":5,"items":{"enum":["red","orange","yellow","green","blue","purple","black","white","gray","pink","brown"]}},"ai_used":{"type":"boolean"},"template_version":{"type":"integer"},"published_at":{"type":"string","format":"date-time"},"license_summary":{"type":"string"},"file":{"type":"object","additionalProperties":false,"required":["format","width","height","bytes"],"properties":{"format":{"const":"image/png"},"width":{"type":"integer"},"height":{"type":"integer"},"bytes":{"type":"integer"}}}}},"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"}}}}},"Wallet":{"type":"object","required":["available","pending","held"],"properties":{"available":{"type":"integer","minimum":0,"maximum":9007199254740991},"pending":{"type":"integer","minimum":0,"maximum":9007199254740991},"held":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"Quote":{"type":"object","required":["id","listing_id","template_id","amount","expires_at","price_version"],"properties":{"id":{"type":"string","format":"uuid"},"listing_id":{"type":"string","format":"uuid"},"template_id":{"type":"string"},"amount":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"expires_at":{"type":"string","format":"date-time"},"price_version":{"type":"integer","minimum":1}}},"Order":{"type":"object","required":["id","listing_id","status","amount"],"properties":{"id":{"type":"string","format":"uuid"},"listing_id":{"type":"string","format":"uuid"},"status":{"enum":["pending","disputed","settled","refunded"]},"amount":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"already_owned":{"type":"boolean"}}},"Dispute":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"enum":["disputed"]}}},"Identity":{"type":"object","additionalProperties":false,"required":["id","email","email_verified","aal"],"properties":{"id":{"type":"string","format":"uuid"},"email":{"type":["string","null"]},"email_verified":{"type":"boolean"},"aal":{"type":"string","enum":["aal1","aal2"]}}},"Profile":{"type":"object","additionalProperties":false,"required":["id","email_verified","risk_cleared","role","state","mfa_required"],"properties":{"id":{"type":"string","format":"uuid"},"email_verified":{"type":"boolean"},"risk_cleared":{"type":"boolean"},"role":{"type":"string","enum":["member","admin"]},"state":{"type":"string","enum":["active","suspended","deleting"]},"mfa_required":{"type":"boolean"}}},"AdminSession":{"type":"object","additionalProperties":false,"required":["id","role","aal"],"properties":{"id":{"type":"string","format":"uuid"},"role":{"const":"admin"},"aal":{"const":"aal2"}}},"DisputeDecision":{"type":"object","additionalProperties":false,"required":["id","order_id","outcome","order_status"],"properties":{"id":{"type":"string","format":"uuid"},"order_id":{"type":"string","format":"uuid"},"outcome":{"enum":["refund","reject"]},"order_status":{"enum":["pending","refunded"],"description":"Immutable status snapshot when the decision was accepted; later settlement may change the order."}}},"Compensation":{"type":"object","additionalProperties":false,"required":["id","order_id","amount","status"],"properties":{"id":{"type":"string","format":"uuid"},"order_id":{"type":"string","format":"uuid"},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"status":{"const":"credited"}}},"LedgerEntry":{"type":"object","additionalProperties":false,"required":["entry_id","transaction_id","kind","bucket","amount","occurred_at","order_id","origins"],"properties":{"entry_id":{"type":"string","pattern":"^[1-9][0-9]*$"},"transaction_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"bucket":{"enum":["available","pending","held"]},"amount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"occurred_at":{"type":"string","format":"date-time"},"order_id":{"type":["string","null"],"format":"uuid"},"origins":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["kind","amount"],"properties":{"kind":{"type":"string"},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991}}}}}},"LedgerPage":{"type":"object","additionalProperties":false,"required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/LedgerEntry"},"maxItems":50},"next_cursor":{"type":["string","null"],"description":"Opaque cursor; do not parse or convert it to a number."}}},"OriginAllocation":{"type":"object","additionalProperties":false,"required":["origin_id","issuance_transaction_id","origin_kind","origin_metadata","amount","debit_entry_id","credit_entry_id","source_lot_id","destination_lot_id","source_transaction_id","source_order_id"],"properties":{"origin_id":{"type":"string","format":"uuid"},"issuance_transaction_id":{"type":"string","format":"uuid"},"origin_kind":{"type":"string"},"origin_metadata":{"type":"object","additionalProperties":true,"description":"Private issuance evidence; only MFA administrators may receive it."},"amount":{"type":"integer","minimum":1,"maximum":9007199254740991},"debit_entry_id":{"type":"string","pattern":"^[1-9][0-9]*$"},"credit_entry_id":{"type":"string","pattern":"^[1-9][0-9]*$"},"source_lot_id":{"type":["string","null"],"format":"uuid"},"destination_lot_id":{"type":["string","null"],"format":"uuid"},"source_transaction_id":{"type":["string","null"],"format":"uuid"},"source_order_id":{"type":["string","null"],"format":"uuid"}}},"OrderProvenance":{"type":"object","additionalProperties":false,"required":["order_id","order_status","transactions"],"properties":{"order_id":{"type":"string","format":"uuid"},"order_status":{"enum":["pending","disputed","settled","refunded"]},"transactions":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["transaction_id","kind","allocations"],"properties":{"transaction_id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"allocations":{"type":"array","items":{"$ref":"#/components/schemas/OriginAllocation"}}}}}}},"Upload":{"type":"object","additionalProperties":false,"required":["id","state","template_id","template_version","filename","input_bytes","width","height","expires_at","error_code","asset_id","asset_state","bytes","sha256","upload_url","preview_url"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["created","processing","validated","failed","expired"]},"template_id":{"type":"string"},"template_version":{"type":"integer"},"filename":{"type":"string","minLength":5,"maxLength":30,"pattern":"^[A-Za-z0-9 _-]+\\.png$"},"input_bytes":{"type":"integer","minimum":1,"maximum":1000000},"width":{"type":"integer","minimum":512,"maximum":1024},"height":{"type":"integer","minimum":512,"maximum":1024},"expires_at":{"type":"string","format":"date-time"},"error_code":{"type":["string","null"]},"asset_id":{"type":["string","null"],"format":"uuid"},"asset_state":{"enum":["active","blocked",null]},"bytes":{"type":["integer","null"],"minimum":1,"maximum":1000000},"sha256":{"type":["string","null"],"pattern":"^[a-f0-9]{64}$"},"upload_url":{"type":"string"},"preview_url":{"type":["string","null"]}}},"DownloadGrant":{"type":"object","additionalProperties":false,"required":["id","expires_at","filename","bytes","download_url","download_token"],"properties":{"id":{"type":"string","format":"uuid"},"expires_at":{"type":"string","format":"date-time"},"filename":{"type":"string","minLength":5,"maxLength":30,"pattern":"^[A-Za-z0-9 _-]+\\.png$"},"bytes":{"type":"integer","minimum":1,"maximum":1000000},"download_url":{"type":"string","description":"API-origin relative path. Web proxy users prefix their /api base; native clients use their configured API origin."},"download_token":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"CreateUpload":{"type":"object","additionalProperties":false,"required":["template_id","filename","bytes","sha256"],"properties":{"template_id":{"type":"string","minLength":1,"maxLength":100},"filename":{"type":"string","minLength":5,"maxLength":30,"pattern":"^[A-Za-z0-9 _-]+\\.png$"},"bytes":{"type":"integer","minimum":1,"maximum":1000000},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$","description":"Declared raw input SHA-256; normalized to lowercase. Canonical output may have another hash after metadata removal."}}},"WorkInput":{"type":"object","additionalProperties":false,"required":["upload_id","title","description","style","colors","rights_type","rights_evidence","ai_used"],"properties":{"upload_id":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":4000},"style":{"enum":["abstract","racing","camo"]},"colors":{"type":"array","minItems":1,"maxItems":5,"items":{"enum":["red","orange","yellow","green","blue","purple","black","white","gray","pink","brown"]}},"rights_type":{"enum":["original","licensed"]},"rights_evidence":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"},"ai_used":{"type":"boolean"}}},"CreateWork":{"type":"object","additionalProperties":false,"required":["upload_id","title","description","style","colors","rights_type","rights_evidence","ai_used","price_credits"],"properties":{"upload_id":{"type":"string","format":"uuid"},"title":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":4000},"style":{"enum":["abstract","racing","camo"]},"colors":{"type":"array","minItems":1,"maxItems":5,"items":{"enum":["red","orange","yellow","green","blue","purple","black","white","gray","pink","brown"]}},"rights_type":{"enum":["original","licensed"]},"rights_evidence":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"},"ai_used":{"type":"boolean"},"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50}}},"WorkRevision":{"type":"object","additionalProperties":false,"required":["id","state","upload_id","title","description","style","colors","rights_type","rights_evidence","ai_used","filename","width","height","bytes","sha256","receipt_id","preview_status","views","review"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["draft","pending","approved","rejected"]},"upload_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"description":{"type":"string"},"style":{"enum":["abstract","racing","camo"]},"colors":{"type":"array","minItems":1,"maxItems":5,"items":{"enum":["red","orange","yellow","green","blue","purple","black","white","gray","pink","brown"]}},"rights_type":{"enum":["original","licensed"]},"rights_evidence":{"type":"string"},"ai_used":{"type":"boolean"},"filename":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"bytes":{"type":"integer"},"sha256":{"type":"string"},"receipt_id":{"type":["string","null"],"format":"uuid"},"preview_status":{"enum":["awaiting_model","queued","ready","stale"]},"views":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["view","url","width","height"],"properties":{"view":{"type":"string"},"url":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"}}}},"review":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["outcome","reason","created_at"],"properties":{"outcome":{"enum":["approve","reject"]},"reason":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}]}}},"CreatorWork":{"type":"object","additionalProperties":false,"required":["id","slug","state","title","price_credits","price_version","template_id","active_revision_id","sale_ready","working_revision","active_revision"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"state":{"enum":["draft","pending","published","withdrawn","taken_down"]},"title":{"type":"string"},"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"price_version":{"type":"integer"},"template_id":{"type":"string"},"active_revision_id":{"type":["string","null"],"format":"uuid"},"sale_ready":{"type":"boolean"},"working_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]},"active_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]}}},"WorkPage":{"type":"object","additionalProperties":false,"required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CreatorWork"}},"next_cursor":{"type":["string","null"]}}},"ReviewWork":{"type":"object","additionalProperties":false,"required":["id","slug","state","title","price_credits","price_version","template_id","active_revision_id","sale_ready","working_revision","active_revision","review_revision_id","review_revision","duplicate_matches","author","template","preview_evidence"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"state":{"enum":["draft","pending","published","withdrawn","taken_down"]},"title":{"type":"string"},"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"price_version":{"type":"integer"},"template_id":{"type":"string"},"active_revision_id":{"type":["string","null"],"format":"uuid"},"sale_ready":{"type":"boolean"},"working_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]},"active_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]},"review_revision_id":{"type":"string","format":"uuid"},"review_revision":{"$ref":"#/components/schemas/WorkRevision"},"duplicate_matches":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["work_id","revision_id","state"],"properties":{"work_id":{"type":"string","format":"uuid"},"revision_id":{"type":"string","format":"uuid"},"state":{"type":"string"}}}},"author":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"display_name":{"type":["string","null"]},"total_works":{"type":"integer","minimum":0},"published_works":{"type":"integer","minimum":0},"taken_down_works":{"type":"integer","minimum":0},"rejected_revisions":{"type":"integer","minimum":0}},"required":["id","display_name","total_works","published_works","taken_down_works","rejected_revisions"]},"template":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"label":{"type":"string"},"version":{"type":"integer"},"width":{"type":"integer","minimum":0},"height":{"type":"integer","minimum":0},"license_verified":{"type":"boolean"},"uv_verified":{"type":"boolean"}},"required":["id","label","version","width","height","license_verified","uv_verified"]},"preview_evidence":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"properties":{"receipt_id":{"type":"string","format":"uuid"},"model_id":{"type":"string"},"model_version":{"type":"integer","minimum":0},"source_sha256":{"type":"string"},"template_version":{"type":"integer","minimum":0},"license_evidence":{"type":"string"},"calibration_evidence":{"type":"string"},"verified_at":{"type":"string","format":"date-time"},"current":{"type":"boolean"}},"required":["receipt_id","model_id","model_version","source_sha256","template_version","license_evidence","calibration_evidence","verified_at","current"]}]}}},"ReviewQueue":{"type":"object","additionalProperties":false,"required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReviewWork"}},"next_cursor":{"type":["string","null"]}}},"ReviewDecision":{"type":"object","additionalProperties":false,"required":["id","work_id","revision_id","outcome","state"],"properties":{"id":{"type":"string","format":"uuid"},"work_id":{"type":"string","format":"uuid"},"revision_id":{"type":"string","format":"uuid"},"outcome":{"enum":["approve","reject"]},"state":{"type":"string"}}},"WorkVisibility":{"type":"object","additionalProperties":false,"required":["id","state"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"type":"string"}}},"WorkPrice":{"type":"object","additionalProperties":false,"required":["id","price_credits","price_version"],"properties":{"id":{"type":"string","format":"uuid"},"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"price_version":{"type":"integer"}}},"CreatorProfile":{"type":"object","additionalProperties":false,"required":["display_name","slug"],"properties":{"display_name":{"type":"string","minLength":1,"maxLength":80},"slug":{"type":"string"}}},"ContentReport":{"type":"object","additionalProperties":false,"required":["id","state"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["open","dismissed","taken_down"]}}},"ReportQueue":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminReport"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"PublicTemplate":{"type":"object","additionalProperties":false,"required":["id","label","width","height","template_version","preview_status"],"properties":{"id":{"type":"string"},"label":{"type":"string"},"width":{"type":"integer","minimum":512,"maximum":1024},"height":{"type":"integer","minimum":512,"maximum":1024},"template_version":{"type":"integer","minimum":1},"preview_status":{"type":"string","enum":["available","awaiting_model","unverified"],"description":"Registration status, not proof that any uploaded revision has a completed render."}}},"BuyerOrder":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"wrap_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"slug":{"type":["string","null"]},"model_label":{"type":"string"},"template_id":{"type":"string"},"amount":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"status":{"type":"string","enum":["pending","disputed","settled","refunded"]},"paid_at":{"type":"string","format":"date-time"},"settles_at":{"type":"string","format":"date-time"},"settled_at":{"type":["string","null"],"format":"date-time"},"refunded_at":{"type":["string","null"],"format":"date-time"},"can_dispute":{"type":"boolean"},"dispute_reason":{"type":["string","null"]},"dispute_details":{"type":["string","null"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"properties":{"outcome":{"type":"string","enum":["refund","reject"]},"reason":{"type":"string"},"decided_at":{"type":"string","format":"date-time"}},"required":["outcome","reason","decided_at"]},{"type":"null"}]},"purchased_revision_id":{"type":"string","format":"uuid"},"current_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"update_available":{"type":"boolean"}},"required":["id","wrap_id","title","slug","model_label","template_id","amount","status","paid_at","settles_at","settled_at","refunded_at","can_dispute","dispute_reason","dispute_details","decision","purchased_revision_id","current_revision_id","update_available"]},"QuoteSnapshot":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"amount":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"price_version":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"revision_id":{"type":"string","format":"uuid"},"state":{"type":"string","enum":["available","expired","changed","unavailable"]},"license_summary":{"type":"string"},"wrap":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"template_id":{"type":"string"},"model_label":{"type":"string"},"filename":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"bytes":{"type":"integer"}},"required":["id","title","template_id","model_label","filename","width","height","bytes"]}},"required":["id","amount","price_version","expires_at","revision_id","state","license_summary","wrap"]},"WrapAccess":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"slug":{"type":["string","null"]},"state":{"type":"string"},"template_id":{"type":"string"},"model_label":{"type":"string"},"access":{"type":"string","enum":["owner","purchased","revoked","none"]},"can_purchase":{"type":"boolean"},"can_download":{"type":"boolean"},"blocked_reason":{"type":["string","null"],"enum":["verification_required","account_review_required","taken_down","access_revoked","not_entitled","resource_unavailable",null]},"download":{"anyOf":[{"type":"object","additionalProperties":false,"properties":{"kind":{"type":"string","enum":["listing","upload"]},"target_id":{"type":"string","format":"uuid"}},"required":["kind","target_id"]},{"type":"null"}]},"preview_url":{"type":["string","null"]},"file":{"anyOf":[{"type":"object","additionalProperties":false,"properties":{"filename":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"bytes":{"type":"integer"},"revision_id":{"type":"string","format":"uuid"}},"required":["filename","width","height","bytes","revision_id"]},{"type":"null"}]},"latest_order":{"anyOf":[{"$ref":"#/components/schemas/BuyerOrder"},{"type":"null"}]}},"required":["id","title","slug","state","template_id","model_label","access","can_purchase","can_download","blocked_reason","download","preview_url","file","latest_order"]},"LibraryPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WrapAccess"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"BuyerOrderPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BuyerOrder"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"PurchaseResolution":{"type":"object","additionalProperties":false,"properties":{"order":{"anyOf":[{"$ref":"#/components/schemas/BuyerOrder"},{"type":"null"}]}},"required":["order"]},"SignupPromotion":{"type":"object","additionalProperties":false,"properties":{"configured":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"enabled":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"accepting":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"amount":{"const":1000},"verification_hours":{"const":24}},"required":["configured","enabled","accepting","amount","verification_hours"]},"ReferralPromotion":{"type":"object","additionalProperties":false,"properties":{"configured":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"enabled":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"accepting":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"amount":{"const":1000},"monthly_limit":{"const":10},"purchase_window_hours":{"const":336},"timezone":{"const":"Asia/Shanghai"}},"required":["configured","enabled","accepting","amount","monthly_limit","purchase_window_hours","timezone"]},"Promotions":{"type":"object","additionalProperties":false,"properties":{"signup":{"$ref":"#/components/schemas/SignupPromotion"},"referral":{"$ref":"#/components/schemas/ReferralPromotion"}},"required":["signup","referral"]},"SignupReward":{"type":"object","additionalProperties":false,"properties":{"amount":{"const":1000},"status":{"type":"string","enum":["processing","not_eligible","unavailable","granted","expired","rejected","awaiting_verification","awaiting_review","claimable"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"reservation_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"accepted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"verification_deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"verification_timely":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"granted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"can_claim":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"can_reapply":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."}},"required":["amount","status","reason","reservation_id","accepted_at","verification_deadline","verification_timely","granted_at","can_claim","can_reapply"]},"MyRewards":{"type":"object","additionalProperties":false,"properties":{"signup":{"$ref":"#/components/schemas/SignupReward"},"promotion":{"$ref":"#/components/schemas/Promotions"},"invite_attribution":{"type":"object","additionalProperties":false,"properties":{"registered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"accepted":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["registered_at","accepted","reason"]}},"required":["signup","promotion","invite_attribution"]},"ReferralProgress":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"label":{"type":"string"},"registered_at":{"type":"string","format":"date-time"},"status":{"type":"string","enum":["not_eligible","granted","awaiting_verification","awaiting_processing","awaiting_purchase","awaiting_review","awaiting_settlement"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"const":1000},"purchase_deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"granted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","label","registered_at","status","reason","amount","purchase_deadline","granted_at"]},"ReferralPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReferralProgress"}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"invite_code":{"anyOf":[{"type":"string","pattern":"^[a-f0-9]{32}$"},{"type":"null"}]},"invite_url":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"month":{"type":"string","format":"date"},"timezone":{"const":"Asia/Shanghai"},"monthly_limit":{"const":10},"used_slots":{"type":"integer"},"remaining_slots":{"type":"integer"},"can_check":{"type":"boolean","description":"The first attribution was recorded, not a promise that a referral reward has been earned or reserved."},"promotion":{"$ref":"#/components/schemas/ReferralPromotion"}},"required":["items","next_cursor","invite_code","invite_url","month","timezone","monthly_limit","used_slots","remaining_slots","can_check","promotion"]},"CreatorSale":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"work_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"model_label":{"type":"string"},"amount":{"type":"integer"},"status":{"type":"string","enum":["pending","disputed","settled","refunded"]},"risk_state":{"type":"string","enum":["cleared","under_review"]},"paid_at":{"type":"string","format":"date-time"},"settles_at":{"type":"string","format":"date-time"},"settled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"refunded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]}},"required":["id","work_id","title","model_label","amount","status","risk_state","paid_at","settles_at","settled_at","refunded_at"]},"CreatorEarnings":{"type":"object","additionalProperties":false,"properties":{"summary":{"type":"object","additionalProperties":false,"properties":{"valid_sales":{"type":"integer"},"pending_credits":{"type":"integer"},"settled_credits":{"type":"integer"},"refunded_credits":{"type":"integer"}},"required":["valid_sales","pending_credits","settled_credits","refunded_credits"],"description":"Non-refunded order count, current pending sale credits, historical settled and refunded sale totals. Never cash revenue or current spendable balance."},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreatorSale"}},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["summary","items","next_cursor"]},"AdminWork":{"type":"object","additionalProperties":false,"required":["id","slug","state","title","price_credits","price_version","template_id","active_revision_id","sale_ready","working_revision","active_revision","author","template"],"properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"state":{"enum":["draft","pending","published","withdrawn","taken_down"]},"title":{"type":"string"},"price_credits":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"price_version":{"type":"integer"},"template_id":{"type":"string"},"active_revision_id":{"type":["string","null"],"format":"uuid"},"sale_ready":{"type":"boolean"},"working_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]},"active_revision":{"anyOf":[{"type":"null"},{"$ref":"#/components/schemas/WorkRevision"}]},"author":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"display_name":{"type":["string","null"]},"total_works":{"type":"integer","minimum":0},"published_works":{"type":"integer","minimum":0},"taken_down_works":{"type":"integer","minimum":0},"rejected_revisions":{"type":"integer","minimum":0}},"required":["id","display_name","total_works","published_works","taken_down_works","rejected_revisions"]},"template":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"label":{"type":"string"},"version":{"type":"integer"},"width":{"type":"integer","minimum":0},"height":{"type":"integer","minimum":0},"license_verified":{"type":"boolean"},"uv_verified":{"type":"boolean"}},"required":["id","label","version","width","height","license_verified","uv_verified"]}}},"AdminReport":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"work_id":{"type":"string","format":"uuid"},"reason_code":{"enum":["COPYRIGHT","RESOURCE_FAILURE","MODEL_MISMATCH","PREVIEW_MISMATCH","ABUSE"]},"details":{"type":"string"},"state":{"enum":["open"]},"created_at":{"type":"string","format":"date-time"}},"required":["id","work_id","reason_code","details","state","created_at"]},"AdminCampaign":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"enum":["signup","referral","compensation"]},"enabled":{"type":"boolean"},"total_budget":{"type":"integer","minimum":0,"maximum":9007199254740991},"reserved":{"type":"integer","minimum":0,"maximum":9007199254740991},"spent":{"type":"integer","minimum":0,"maximum":9007199254740991},"available_budget":{"type":"integer","minimum":0,"maximum":9007199254740991},"config_version":{"type":"integer","minimum":0,"maximum":2147483646},"created_at":{"type":"string","format":"date-time"}},"required":["id","kind","enabled","total_budget","reserved","spent","available_budget","config_version","created_at"]},"AdminCampaignPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminCampaign"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminPromotions":{"type":"object","additionalProperties":false,"properties":{"version":{"type":"integer","minimum":0,"maximum":2147483646},"signup_campaign_id":{"type":["string","null"],"format":"uuid"},"referral_campaign_id":{"type":["string","null"],"format":"uuid"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["version","signup_campaign_id","referral_campaign_id","updated_at"]},"AccountLink":{"type":"object","additionalProperties":false,"properties":{"other_user_id":{"type":"string","format":"uuid"},"active":{"type":"boolean"},"version":{"type":"integer","minimum":0,"maximum":2147483646},"evidence_basis":{"type":"string"},"reason":{"type":"string","minLength":1,"maxLength":2000},"updated_at":{"type":"string","format":"date-time"}},"required":["other_user_id","active","version","evidence_basis","reason","updated_at"]},"AccountLinkPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AccountLink"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminAccount":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"verified":{"type":"boolean"},"risk_cleared":{"type":"boolean"},"state":{"enum":["active","suspended","deleting"]},"role":{"enum":["member","admin"]},"risk_version":{"type":"integer","minimum":0,"maximum":2147483646},"auth_blocked":{"type":"boolean"},"auth_banned_until":{"type":["string","null"],"format":"date-time"},"created_at":{"type":"string","format":"date-time"},"display_name":{"type":["string","null"]},"links":{"type":"array","maxItems":24,"items":{"$ref":"#/components/schemas/AccountLink"},"description":"Only first 24 direct links. Use the separate paginated links endpoint for the whole direct-link history."}},"required":["id","verified","risk_cleared","state","role","risk_version","auth_blocked","auth_banned_until","created_at","display_name","links"]},"AdminAccountPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminAccount"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminOrder":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"wrap_id":{"type":"string","format":"uuid"},"title":{"type":"string"},"slug":{"type":["string","null"]},"model_label":{"type":"string"},"template_id":{"type":"string"},"amount":{"type":"integer","minimum":50,"maximum":1000,"multipleOf":50},"status":{"type":"string","enum":["pending","disputed","settled","refunded"]},"paid_at":{"type":"string","format":"date-time"},"settles_at":{"type":"string","format":"date-time"},"settled_at":{"type":["string","null"],"format":"date-time"},"refunded_at":{"type":["string","null"],"format":"date-time"},"can_dispute":{"type":"boolean"},"dispute_reason":{"type":["string","null"]},"dispute_details":{"type":["string","null"]},"decision":{"anyOf":[{"type":"object","additionalProperties":false,"properties":{"outcome":{"type":"string","enum":["refund","reject"]},"reason":{"type":"string"},"decided_at":{"type":"string","format":"date-time"}},"required":["outcome","reason","decided_at"]},{"type":"null"}]},"purchased_revision_id":{"type":"string","format":"uuid"},"current_revision_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"update_available":{"type":"boolean"},"buyer_id":{"type":"string","format":"uuid"},"seller_id":{"type":"string","format":"uuid"},"risk_state":{"enum":["review","clear","blocked"]},"ops_version":{"type":"integer","minimum":0,"maximum":2147483646},"work_state":{"type":"string"},"can_resolve":{"type":"boolean"},"can_compensate":{"type":"boolean"},"compensation":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"amount":{"type":"integer","minimum":0,"maximum":9007199254740991},"campaign_id":{"type":"string","format":"uuid"},"reason_code":{"type":"string"},"reason":{"type":"string","minLength":1,"maxLength":2000},"created_at":{"type":"string","format":"date-time"}},"required":["id","amount","campaign_id","reason_code","reason","created_at"]}]}},"required":["id","wrap_id","title","slug","model_label","template_id","amount","status","paid_at","settles_at","settled_at","refunded_at","can_dispute","dispute_reason","dispute_details","decision","purchased_revision_id","current_revision_id","update_available","buyer_id","seller_id","risk_state","ops_version","work_state","can_resolve","can_compensate","compensation"]},"AdminOrderPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminOrder"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminAudit":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"actor_id":{"type":["string","null"],"format":"uuid"},"action":{"type":"string"},"resource_id":{"type":["string","null"],"format":"uuid"},"reason":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time"},"change":{"anyOf":[{"type":"null"},{"type":"object","additionalProperties":false,"properties":{"before":{"type":["object","null"],"additionalProperties":true},"after":{"type":["object","null"],"additionalProperties":true},"effective_at":{"type":"string","format":"date-time"}},"required":["before","after","effective_at"]}]}},"required":["id","actor_id","action","resource_id","reason","created_at","change"]},"AdminAuditPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminAudit"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminAssociationRecord":{"type":"object","additionalProperties":false,"properties":{"user_a":{"type":"string","format":"uuid"},"user_b":{"type":"string","format":"uuid"},"reason":{"type":"string","minLength":1,"maxLength":2000},"created_at":{"type":"string","format":"date-time"},"active":{"type":"boolean"},"version":{"type":"integer","minimum":0,"maximum":2147483646},"evidence_basis":{"type":"string"},"updated_at":{"type":"string","format":"date-time"}},"required":["user_a","user_b","reason","created_at","active","version","evidence_basis","updated_at"]},"SupportOptions":{"type":"object","additionalProperties":false,"properties":{"private_support_available":{"type":"boolean"},"contact_url":{"type":["string","null"],"format":"uri","description":"Explicit configured safe HTTPS or plain mailto contact, not an authenticated intake. No credentials/query/fragment/headers. Null means no configured contact; no deliverability or response SLA claim."},"new_tickets_per_day":{"const":3},"user_messages_per_day":{"const":20},"quota_timezone":{"const":"Asia/Shanghai"}},"required":["private_support_available","contact_url","new_tickets_per_day","user_messages_per_day","quota_timezone"]},"SupportTicket":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"enum":["account_appeal","order_issue","content_issue","other"]},"subject":{"type":"string","minLength":1,"maxLength":120},"order_id":{"type":["string","null"],"format":"uuid"},"work_id":{"type":["string","null"],"format":"uuid"},"state":{"enum":["open","waiting_user","resolved","closed"]},"version":{"type":"integer","minimum":1,"maximum":2147483646},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","kind","subject","order_id","work_id","state","version","created_at","updated_at"]},"SupportTicketPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SupportTicket"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"AdminSupportTicket":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"kind":{"enum":["account_appeal","order_issue","content_issue","other"]},"subject":{"type":"string","minLength":1,"maxLength":120},"order_id":{"type":["string","null"],"format":"uuid"},"work_id":{"type":["string","null"],"format":"uuid"},"state":{"enum":["open","waiting_user","resolved","closed"]},"version":{"type":"integer","minimum":1,"maximum":2147483646},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"owner_id":{"type":"string","format":"uuid"},"owner_state":{"type":"string"},"owner_verified":{"type":"boolean"},"owner_risk_cleared":{"type":"boolean"}},"required":["id","kind","subject","order_id","work_id","state","version","created_at","updated_at","owner_id","owner_state","owner_verified","owner_risk_cleared"]},"AdminSupportTicketPage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminSupportTicket"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"SupportMessage":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid"},"ticket_version":{"type":"integer","minimum":1,"maximum":2147483646},"author_kind":{"enum":["user","staff"]},"body":{"type":"string","minLength":1,"maxLength":4000},"created_at":{"type":"string","format":"date-time"}},"required":["id","ticket_version","author_kind","body","created_at"]},"SupportMessagePage":{"type":"object","additionalProperties":false,"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SupportMessage"}},"next_cursor":{"type":["string","null"]}},"required":["items","next_cursor"]},"SupportReceipt":{"type":"object","additionalProperties":false,"properties":{"ticket_id":{"type":"string","format":"uuid"},"message_id":{"type":"string","format":"uuid"},"accepted_version":{"type":"integer","minimum":1,"maximum":2147483646}},"required":["ticket_id","message_id","accepted_version"]},"FavoriteItem":{"type":"object","required":["work_id","favorite_id","saved","saved_at","available","wrap"],"properties":{"work_id":{"type":"string","format":"uuid"},"favorite_id":{"type":["string","null"],"format":"uuid"},"saved":{"type":"boolean"},"saved_at":{"type":["string","null"],"format":"date-time"},"available":{"type":"boolean"},"wrap":{"anyOf":[{"$ref":"#/components/schemas/PublicWrap"},{"type":"null"}]}}},"FavoritePage":{"type":"object","required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/FavoriteItem"}},"next_cursor":{"type":["string","null"]}}},"MemberPreferences":{"type":"object","required":["version","default_model_id","default_model","updated_at"],"properties":{"version":{"type":"integer","minimum":0},"default_model_id":{"type":["string","null"]},"default_model":{"anyOf":[{"$ref":"#/components/schemas/PublicTemplate"},{"type":"null"}]},"updated_at":{"type":["string","null"],"format":"date-time"}}},"AdminOutboxEvent":{"type":"object","additionalProperties":false,"required":["id","topic","state","failure_kind","dispatch_attempt","dispatch_failures","last_error_code","last_error_at","created_at","dead_lettered_at"],"properties":{"id":{"type":"string","format":"uuid"},"topic":{"type":"string"},"state":{"type":"string","enum":["dispatch_stalled","consumer_dead_letter"]},"failure_kind":{"type":"string","enum":["dispatch_stalled","consumer_dlq"]},"dispatch_attempt":{"type":"integer","minimum":1},"dispatch_failures":{"type":"integer","minimum":0},"last_error_code":{"type":"string"},"last_error_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"dead_lettered_at":{"type":"string","format":"date-time"}}},"AdminOutboxPage":{"type":"object","additionalProperties":false,"required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminOutboxEvent"}},"next_cursor":{"type":["string","null"]}}},"AdminOutboxReplay":{"type":"object","additionalProperties":false,"required":["id","topic","state","failure_kind","dispatch_attempt","dispatch_failures","last_error_code","last_error_at","created_at","dead_lettered_at"],"properties":{"id":{"type":"string","format":"uuid"},"topic":{"type":"string"},"state":{"type":"string","const":"requeued"},"failure_kind":{"type":"null"},"dispatch_attempt":{"type":"integer","minimum":2},"dispatch_failures":{"type":"integer","const":0},"last_error_code":{"type":"null"},"last_error_at":{"type":"null"},"created_at":{"type":"string","format":"date-time"},"dead_lettered_at":{"type":"null"}}},"PublicCreatorProfile":{"type":"object","additionalProperties":false,"required":["slug","name"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,119}$"},"name":{"type":"string","minLength":1,"maxLength":80}}},"PublicCreatorPage":{"type":"object","additionalProperties":false,"required":["data_source","profile","published_works_count","items","next_cursor"],"properties":{"data_source":{"const":"database"},"profile":{"$ref":"#/components/schemas/PublicCreatorProfile"},"published_works_count":{"type":"integer","minimum":1},"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicWrap"}},"next_cursor":{"type":["string","null"]}}},"PublicSiteIndex":{"type":"object","additionalProperties":false,"required":["data_source","items","creators","truncated"],"properties":{"data_source":{"type":"string","const":"database"},"items":{"type":"array","maxItems":49996,"items":{"type":"object","additionalProperties":false,"required":["slug","preview_path"],"properties":{"slug":{"type":"string"},"preview_path":{"type":"string"}}}},"creators":{"type":"array","maxItems":49996,"items":{"type":"object","additionalProperties":false,"required":["slug"],"properties":{"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,119}$"}}}},"truncated":{"type":"boolean"}}},"AiGeneration":{"type":"object","required":["id","state","template_id","prompt","style","color","credit_price","created_at","finished_at","error_code","output_sha256","output_width","output_height","output_bytes"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["queued","processing","succeeded","failed","canceled","timed_out"]},"template_id":{"type":"string"},"prompt":{"type":"string","maxLength":600},"style":{"enum":["abstract","gradient","camo","racing"]},"color":{"type":"string","maxLength":40},"credit_price":{"type":"integer","minimum":50,"maximum":1000},"created_at":{"type":"string","format":"date-time"},"finished_at":{"type":["string","null"],"format":"date-time"},"error_code":{"type":["string","null"]},"output_sha256":{"type":["string","null"],"pattern":"^[0-9a-f]{64}$"},"output_width":{"type":["integer","null"]},"output_height":{"type":["integer","null"]},"output_bytes":{"type":["integer","null"],"maximum":1000000}}},"AiGenerationReceipt":{"type":"object","required":["id","state","credit_price","created_at"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["queued","processing","succeeded","failed","canceled","timed_out"]},"credit_price":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"AiGenerationPage":{"type":"object","required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AiGeneration"}},"next_cursor":{"type":["string","null"],"maxLength":1024}}},"AiGenerationCancelReceipt":{"type":"object","required":["generation_id","state"],"properties":{"generation_id":{"type":"string","format":"uuid"},"state":{"enum":["processing","succeeded","failed","canceled","timed_out"]}}},"AdminAiGenerationSettings":{"type":"object","required":["enabled","credit_price","daily_task_limit","active_task_limit","budget_limit_microusd","reserved_microusd","spent_microusd","available_microusd","max_task_cost_microusd","budget_breached","config_version","updated_at"],"properties":{"enabled":{"type":"boolean"},"credit_price":{"type":"integer"},"daily_task_limit":{"type":"integer"},"active_task_limit":{"type":"integer"},"budget_limit_microusd":{"type":"integer"},"reserved_microusd":{"type":"integer"},"spent_microusd":{"type":"integer"},"available_microusd":{"type":"integer"},"max_task_cost_microusd":{"type":"integer"},"budget_breached":{"type":"boolean"},"config_version":{"type":"integer"},"updated_at":{"type":"string","format":"date-time"}}},"AdminVehicleModel":{"type":"object","required":["template_id","label","width","height","template_version","license_verified","uv_verified","preview_status","preview_model"],"properties":{"template_id":{"type":"string"},"label":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"template_version":{"type":"integer"},"license_verified":{"type":"boolean"},"uv_verified":{"type":"boolean"},"preview_status":{"enum":["available","awaiting_model","unverified"]},"preview_model":{"oneOf":[{"type":"null"},{"type":"object","required":["id","version","enabled","state_version","sha256","asset_reference_recorded","public_preview_allowed","asset_bytes","license_evidence","calibration_evidence","evidence_truncated","verified_by","verified_at"],"properties":{"id":{"type":"string"},"version":{"type":"integer"},"enabled":{"type":"boolean"},"state_version":{"type":"integer"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"asset_reference_recorded":{"type":"boolean"},"public_preview_allowed":{"type":"boolean"},"asset_bytes":{"type":"integer","minimum":0,"maximum":25000000},"license_evidence":{"type":"string","maxLength":4000},"calibration_evidence":{"type":"string","maxLength":4000},"evidence_truncated":{"type":"boolean"},"verified_by":{"type":"string","format":"uuid"},"verified_at":{"type":"string","format":"date-time"}}}]}}},"AdminVehicleModelCatalog":{"type":"object","required":["data_source","items"],"properties":{"data_source":{"const":"database"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminVehicleModel"}}}},"AdminPreviewModelStateReceipt":{"type":"object","required":["template_id","preview_model_id","enabled","state_version","preview_status"],"properties":{"template_id":{"type":"string"},"preview_model_id":{"type":"string"},"enabled":{"type":"boolean"},"state_version":{"type":"integer"},"preview_status":{"enum":["available","awaiting_model","unverified"]}}},"AdminModelSubmission":{"type":"object","required":["id","template_id","template_version","filename","bytes","expected_sha256","license_evidence","calibration_evidence","evidence_reference","state","state_version","submitted_by","created_at","updated_at","uploaded_at","reviewed_by","reviewed_at","review_reason","preview_model_id"],"properties":{"id":{"type":"string","format":"uuid"},"template_id":{"type":"string"},"template_version":{"type":"integer"},"filename":{"type":"string"},"bytes":{"type":"integer"},"expected_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"license_evidence":{"type":"string","maxLength":2000},"calibration_evidence":{"type":"string","maxLength":2000},"evidence_reference":{"type":"string","maxLength":1000},"state":{"enum":["awaiting_asset","pending_review","approved","rejected"]},"state_version":{"type":"integer"},"submitted_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"uploaded_at":{"type":["string","null"],"format":"date-time"},"reviewed_by":{"type":["string","null"],"format":"uuid"},"reviewed_at":{"type":["string","null"],"format":"date-time"},"review_reason":{"type":["string","null"]},"preview_model_id":{"type":["string","null"]}}},"AdminModelSubmissionPage":{"type":"object","required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminModelSubmission"}},"next_cursor":{"type":["string","null"]}}},"AdminModelSubmissionReceipt":{"type":"object","required":["id","state","template_id","template_version","filename","bytes","expected_sha256","upload_url","state_version","created_at"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"const":"awaiting_asset"},"template_id":{"type":"string"},"template_version":{"type":"integer"},"filename":{"type":"string"},"bytes":{"type":"integer"},"expected_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"upload_url":{"type":"string"},"state_version":{"const":1},"created_at":{"type":"string","format":"date-time"}}},"AdminModelUploadReceipt":{"type":"object","required":["id","state","state_version","filename","bytes","expected_sha256"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"const":"pending_review"},"state_version":{"type":"integer"},"filename":{"type":"string"},"bytes":{"type":"integer"},"expected_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"AdminModelReviewReceipt":{"type":"object","required":["id","state","state_version","preview_model_id","enabled"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["approved","rejected"]},"state_version":{"type":"integer"},"preview_model_id":{"type":["string","null"]},"enabled":{"type":["boolean","null"],"description":"Approved model records are created disabled until a separate AAL2 readiness check."}}},"AdminAiTemplateSubmission":{"type":"object","additionalProperties":false,"required":["id","template_id","template_version","filename","bytes","expected_sha256","asset_bytes","asset_sha256","width","height","rights_evidence","provider_evidence","layout_evidence","evidence_reference","state","state_version","submitted_by","created_at","updated_at","uploaded_at","reviewed_by","reviewed_at","review_reason"],"properties":{"id":{"type":"string","format":"uuid"},"template_id":{"type":"string"},"template_version":{"type":"integer"},"filename":{"type":"string"},"bytes":{"type":"integer"},"expected_sha256":{"type":"string"},"asset_bytes":{"type":["integer","null"]},"asset_sha256":{"type":["string","null"]},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"rights_evidence":{"type":"string"},"provider_evidence":{"type":"string"},"layout_evidence":{"type":"string"},"evidence_reference":{"type":"string"},"state":{"enum":["awaiting_asset","pending_review","approved","rejected","revoked"]},"state_version":{"type":"integer"},"submitted_by":{"type":"string","format":"uuid"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"uploaded_at":{"type":["string","null"],"format":"date-time"},"reviewed_by":{"type":["string","null"],"format":"uuid"},"reviewed_at":{"type":["string","null"],"format":"date-time"},"review_reason":{"type":["string","null"]}}},"AdminAiTemplateSubmissionPage":{"type":"object","additionalProperties":false,"required":["items","next_cursor"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminAiTemplateSubmission"}},"next_cursor":{"type":["string","null"]}}},"AdminAiTemplateSubmissionReceipt":{"type":"object","additionalProperties":false,"required":["id","state","template_id","template_version","filename","bytes","expected_sha256","upload_url","state_version","created_at"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"const":"awaiting_asset"},"template_id":{"type":"string"},"template_version":{"type":"integer"},"filename":{"type":"string"},"bytes":{"type":"integer"},"expected_sha256":{"type":"string"},"upload_url":{"type":"string"},"state_version":{"const":1},"created_at":{"type":"string","format":"date-time"}}},"AdminAiTemplateUploadReceipt":{"type":"object","additionalProperties":false,"required":["id","state","state_version","asset_bytes","asset_sha256","width","height","uploaded_at"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"const":"pending_review"},"state_version":{"type":"integer"},"asset_bytes":{"type":"integer"},"asset_sha256":{"type":"string"},"width":{"type":"integer"},"height":{"type":"integer"},"uploaded_at":{"type":"string","format":"date-time"}}},"AdminAiTemplateReviewReceipt":{"type":"object","additionalProperties":false,"required":["id","state","state_version","template_id","template_version"],"properties":{"id":{"type":"string","format":"uuid"},"state":{"enum":["approved","rejected","revoked"]},"state_version":{"type":"integer"},"template_id":{"type":"string"},"template_version":{"type":"integer"}}},"AdminAiCostPendingItem":{"type":"object","additionalProperties":false,"required":["generation_id","attempt_no","state","provider","model","provider_request_id","started_at","finished_at","reserved_cost_microusd","credit_price","generation_state"],"properties":{"generation_id":{"type":"string","format":"uuid"},"attempt_no":{"type":"integer"},"state":{"const":"cost_pending"},"provider":{"type":"string"},"model":{"type":"string"},"provider_request_id":{"type":["string","null"]},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time"},"reserved_cost_microusd":{"type":"integer"},"credit_price":{"type":"integer"},"generation_state":{"const":"failed"}}},"AdminAiCostPendingPage":{"type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/AdminAiCostPendingItem"}}}},"AdminAiCostReconciliationReceipt":{"type":"object","additionalProperties":false,"required":["state","generation_id","attempt_no","actual_cost_microusd","budget_breached"],"properties":{"state":{"const":"reconciled"},"generation_id":{"type":"string","format":"uuid"},"attempt_no":{"type":"integer"},"actual_cost_microusd":{"type":"integer"},"budget_breached":{"type":"boolean"}}},"AccountDeletionRequest":{"type":"object","additionalProperties":false,"required":["id","status","requested_at"],"properties":{"id":{"type":"string","format":"uuid"},"status":{"const":"requested"},"requested_at":{"type":"string","format":"date-time"}}}},"responses":{"NotFound":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"ValidationError":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"Unauthorized":{"description":"Authentication required or session is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"Forbidden":{"description":"Account or role is not permitted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"Conflict":{"description":"The expected version, idempotency key, or saved state conflicts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"InvalidInput":{"description":"The request does not match the strict API contract","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"Unavailable":{"description":"The service is temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"parameters":{"ExpectedUserId":{"name":"X-Expected-User-Id","in":"header","required":false,"schema":{"type":"string","format":"uuid"},"description":"Optional account-coherence fence. If present it must match the independently authenticated actor, case-insensitively, or ACCOUNT_CHANGED409. It NEVER supplies identity or grants access. Web purchase/recovery uses it so a switched Cookie cannot consume another users local intent."},"IdempotencyKey":{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":1,"maxLength":200},"description":"Keep the exact actor/body/key after an unknown outcome. Do not automatically replay a different mutation."}}}}