{"openapi":"3.1.0","info":{"title":"Auro Video API","version":"1.0.0-beta.1","description":"Authenticated HTTPS gateway for the Aurora Flow API. Agents use their own revocable Bearer credential, including accounts signed in with Google. Verified email/password Basic Auth remains an alternative; the website uses a revocable secure session. Call GET /v1/me first; the server selects or claims the caller's fixed Flow project from the prepared pool."},"x-aurora-users":{"registration_endpoint":"/v1/auth/register","registration_authentication":"none","identifier":"email","email_verification":"required before login or Basic Auth","browser_session":"opaque 24-hour revocable HttpOnly cookie plus CSRF token","password_recovery":"/v1/auth/password/request and /v1/auth/password/reset","pending_project_policy":"email verification activates the account only after an observed Flow project has been durably assigned; an exhausted pool returns 503 without consuming the verification token","normal_queue_limit":100},"servers":[{"url":"https://api.auroflow.club","description":"Public HTTPS via Tailscale Funnel"}],"security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"tags":[{"name":"read","description":"Read-only HTTP operations."},{"name":"write","description":"Operations that change local state, reconnect, prepare UI, or may schedule a render."}],"paths":{"/health":{"get":{"tags":["read"],"summary":"Read service health","security":[],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"type":"object","required":["ok"],"properties":{"ok":{"const":true}}}}}}}}},"/v1/auth/register":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"},"503":{"description":"Observed Flow project capacity unavailable; registration or activation is paused"}},"summary":"Register an email account","description":"Creates a pending account and sends a single-use verification link when observed Flow project capacity exists. The public response does not reveal whether an address already exists. Returns 503 when new registrations are paused for capacity.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["email","password"],"properties":{"email":{"type":"string","format":"email","maxLength":254},"password":{"type":"string","format":"password","minLength":12,"maxLength":512,"writeOnly":true}}}}}}}},"/v1/browser":{"get":{"tags":["read"],"summary":"Inspect persistent browser broker","responses":{"200":{"description":"Browser diagnostic","content":{"application/json":{"schema":{"type":"object","required":["browser"],"properties":{"browser":{"type":"object"}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/capabilities":{"get":{"tags":["read"],"summary":"Read declared capability and verification status","responses":{"200":{"description":"Capabilities","content":{"application/json":{"schema":{"type":"object","required":["capabilities"],"properties":{"capabilities":{"type":"object"}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/me":{"get":{"tags":["read"],"summary":"Read the authenticated account project assignment","description":"Returns the caller email, role and unique Flow project assigned automatically at email verification from the prepared pool. It never returns the password, opaque account key or another tenant's project.","responses":{"200":{"description":"Authenticated tenant assignment","content":{"application/json":{"schema":{"type":"object","required":["account"],"properties":{"account":{"type":"object","required":["email","assignment_required","assigned"],"properties":{"email":{"type":"string","format":"email","nullable":true},"assignment_required":{"type":"boolean"},"assigned":{"type":"boolean"},"status":{"enum":["pending","disabled"]}}}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/openapi.json":{"get":{"tags":["read"],"summary":"Read this authenticated OpenAPI description","description":"OpenAPI contract for this HTTPS gateway.","responses":{"200":{"description":"OpenAPI 3.1 document","content":{"application/json":{"schema":{"type":"object","required":["openapi","info","paths"]}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/compile":{"post":{"tags":["read"],"summary":"Compile creative request offline","description":"Validates structure, project-owned reference paths and hashes only. Does not open browser, write a queue, upload media, reserve, or render.","requestBody":{"$ref":"#/components/requestBodies/CreativeRequest"},"responses":{"200":{"description":"Normalized request","content":{"application/json":{"schema":{"type":"object","required":["compiled"],"properties":{"compiled":{"$ref":"#/components/schemas/CompiledRequest"}}}}}},"400":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/preflight":{"post":{"tags":["write"],"summary":"Prepare assigned Flow UI without reservation or submit","description":"May navigate the assigned UI, set controls, fill prompt, and attach or upload authorized references. It does not reserve a queue slot or click Generate.","requestBody":{"$ref":"#/components/requestBodies/CreativeRequest"},"responses":{"200":{"description":"Compiled request and live browser preparation","content":{"application/json":{"schema":{"type":"object","required":["preflight"],"properties":{"preflight":{"type":"object","required":["compiled","browser_probe","submitted","queue_reserved"],"properties":{"compiled":{"$ref":"#/components/schemas/CompiledRequest"},"browser_probe":{"type":"object"},"submitted":{"const":false},"queue_reserved":{"const":false}}}}}}}},"400":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/references":{"get":{"summary":"List private references for the authenticated account","description":"Alias of the private upload catalog; never returns server paths.","responses":{"200":{"description":"Private reference catalog"}}},"post":{"summary":"Resolve an uploaded image as a public reference","description":"Uses an existing upload_id. It never accepts or exposes a server-local path.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["upload_id"],"properties":{"id":{"type":"string"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"role":{"enum":["character","environment","asset","style","start","end"]},"approved":{"const":true},"display_name":{"type":"string"},"priority":{"type":"integer","minimum":0,"maximum":100}}}}}},"responses":{"200":{"description":"Resolved reference"},"404":{"description":"Upload not found for this account"}}}},"/v1/jobs":{"get":{"tags":["read"],"summary":"Read a bounded page of owned durable jobs","responses":{"200":{"description":"Owned jobs page","content":{"application/json":{"schema":{"type":"object","required":["jobs","pagination"],"properties":{"jobs":{"type":"array","items":{"type":"object"}},"pagination":{"type":"object","required":["offset","limit","total","next_offset"],"properties":{"offset":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"next_offset":{"type":["integer","null"]}}}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"description":"Newest first. Default 20, maximum 40 records and a 2 MiB projection budget per page. Follow pagination.next_offset until null. Offsets can shift when new jobs arrive; deduplicate by stable job.id. Read a known job directly by ID, not by scanning every page.","parameters":[{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":40,"default":20}}]},"post":{"tags":["write"],"summary":"Create or replay an idempotent job","description":"Asynchronous. A profile may submit only after all live gates pass; no model or price fallback occurs. Normal accounts have a maximum of 100 pending work items; the service has a global maximum of 4096, of which 256 slots are reserved for priority work. A limit returns 429 and the queue_user_limit or queue_capacity error code.","requestBody":{"$ref":"#/components/requestBodies/CreativeRequest"},"responses":{"200":{"description":"Existing completed job","content":{"application/json":{"schema":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Job"}}}}}},"202":{"description":"Job accepted or existing non-completed job","content":{"application/json":{"schema":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Job"}}}}}},"400":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"x-auroflow-credit-cost":"1 credit per 60 seconds generated, summed across outputs, accounted in integer milliseconds"}},"/v1/jobs/{id}":{"parameters":[{"$ref":"#/components/parameters/JobId"}],"get":{"tags":["read"],"summary":"Read one durable job","responses":{"200":{"description":"Job","content":{"application/json":{"schema":{"type":"object","required":["job"],"properties":{"job":{"$ref":"#/components/schemas/Job"}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/jobs/{id}/recover":{"parameters":[{"$ref":"#/components/parameters/JobId"}],"post":{"tags":["write"],"summary":"Recover uncertain job without resubmission","description":"Collect-only recovery. It never clicks Generate.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Already completed","content":{"application/json":{"schema":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Job"}}}}}},"202":{"description":"Recovery scheduled","content":{"application/json":{"schema":{"type":"object","properties":{"job":{"$ref":"#/components/schemas/Job"}}}}}},"401":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/jobs/{id}/video":{"parameters":[{"$ref":"#/components/parameters/JobId"}],"get":{"tags":["read"],"summary":"Download completed MP4","responses":{"200":{"description":"MP4","content":{"video/mp4":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}]},"head":{"tags":["read"],"summary":"Read media metadata without a response body","responses":{"200":{"description":"MP4","content":{"video/mp4":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"$ref":"#/components/responses/Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}]}},"/v1/jobs/{id}/variants/{variant}/video":{"get":{"summary":"Download one verified variant","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 variant"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 variant"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/compile":{"post":{"summary":"Compile a sequence without browser work","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences":{"get":{"summary":"List durable sequences","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create a durable sequence or server-finished movie idempotently","description":"For owned completed clips, assembly=local plus finishing performs bounded framing, audio normalization and protected seam matching entirely on the server. Integer cost_max=0 is required; no source generation or provider credits. Read the same sequence ID until delivery is ready. Identical replay does not render again; changed content under that ID conflicts.","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SequenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"202":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}":{"get":{"summary":"Read sequence state and evidence","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}/recover":{"post":{"summary":"Reconcile without duplicating Scene clips","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}/video":{"get":{"summary":"Download final sequence","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 sequence"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 sequence"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}/preview-video":{"get":{"summary":"Download deterministic local preview","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 preview"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 preview"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}/native-video":{"get":{"summary":"Download native Flow Scene","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 Scene"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 Scene"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sequences/{id}/hybrid-video":{"get":{"summary":"Download hybrid audio sequence","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 hybrid"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"MP4 hybrid"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/queue":{"get":{"summary":"Read queue position, accounts ahead and estimated wait","description":"Shows only the caller's pending jobs and sequences, with global position, numbers of jobs and other accounts ahead, and estimated start/completion times. No other account IDs, prompts, credentials or local paths are exposed. ETA uses recent observed completion times and the canonical 200 submissions/24h cap; it is null when blocked, disconnected or without sufficient history. Priority tiers are strict, accounts alternate fairly within a tier, FIFO is preserved per account, and active work is never preempted.","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"queue":{"type":"object","properties":{"pending":{"type":"integer","description":"Pending work visible to this account."},"global_pending":{"type":"integer","description":"Total currently pending work, without identities."},"waiting_accounts":{"type":"integer","description":"Distinct accounts with currently pending work."},"eta":{"type":"object","properties":{"status":{"type":"string","enum":["estimated","generation_blocked","browser_needs_reconnect","worker_unavailable","insufficient_history","offline"]},"as_of":{"type":"number","description":"Unix seconds at estimation time."},"observed_completions":{"type":"integer"},"estimated_service_seconds":{"type":["integer","null"]}}},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"position":{"type":"integer","description":"Global 1-based execution position, including active work."},"ahead_jobs":{"type":"integer"},"ahead_accounts":{"type":"integer","description":"Distinct other accounts with work ahead."},"estimated_wait_seconds":{"type":["integer","null"],"description":"Approximate time until this work starts."},"estimated_completion_seconds":{"type":["integer","null"],"description":"Approximate time until this work completes."},"estimated_start_at":{"type":["number","null"],"description":"Estimated Unix start time."},"estimated_completion_at":{"type":["number","null"],"description":"Estimated Unix completion time."}}}},"browser_guard":{"type":"object","required":["enabled","blocked","status"],"properties":{"enabled":{"const":true},"blocked":{"type":"boolean"},"status":{"enum":["ready","blocked","unavailable"]}}},"scheduler":{"type":"object","properties":{"healthy":{"type":"boolean"},"continuous":{"type":"boolean"},"state":{"type":"string","enum":["processing","waiting_work","waiting_recovery","waiting_queue","stopped","unavailable"]},"failures":{"type":"integer","minimum":0}}},"browser_connection":{"type":"object","properties":{"reconnect_required":{"type":"boolean"}}}}}}}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/jobs/{id}/variants/{variant}/native-video":{"get":{"summary":"Download the original native variant","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"Original native MP4; its bytes match native_source.sha256"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"description":"Explicit native source MP4, with its original hash and media facts. It may contain audio even when the approved delivery requests silence. This endpoint never substitutes a derived final file. Ownership, authorization and byte ranges are the same as the variant delivery endpoint."},"head":{"summary":"Read media metadata without a response body","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"variant","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}},{"name":"Range","in":"header","schema":{"type":"string"},"description":"One bytes=start-end or suffix range. Unsupported or multiple ranges are ignored with 200. HEAD ignores Range."}],"responses":{"200":{"description":"Original native MP4; its bytes match native_source.sha256"},"206":{"description":"Verified byte range; Content-Range and Content-Length"},"416":{"description":"Unsatisfiable range; Content-Range bytes */size"},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Account cannot access this media","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Requested final artifact is not ready","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"description":"Explicit native source MP4, with its original hash and media facts. It may contain audio even when the approved delivery requests silence. This endpoint never substitutes a derived final file. Ownership, authorization and byte ranges are the same as the variant delivery endpoint."}},"/v1/native-voices":{"post":{"summary":"Save your private native voice","description":"Stable lib- ID; same queue and authenticated owner as videos. Exact zero only. No Sync/preview synthesis. On timeout read the same operation ID.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeVoiceCreate"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same request already exists"},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-characters":{"post":{"summary":"Save your private native character","description":"Stable lib- ID; same queue and authenticated owner as videos. Exact zero only. No Sync/preview synthesis. On timeout read the same operation ID.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeCharacterCreate"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same request already exists"},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-voices/presets":{"get":{"summary":"List base synthetic voice presets","responses":{"200":{"description":"Preset names; no synthesis"},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-operations/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"}}],"get":{"summary":"Read your native save operation","responses":{"200":{"description":"Owned state, revision and observed IDs"},"404":{"description":"No operation visible to this account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-operations/{id}/recover":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"}}],"post":{"summary":"Recover the same native save without duplicate upload or voice creation","responses":{"202":{"description":"Recovery queued"},"200":{"description":"Already known"},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-images":{"post":{"summary":"Create one private reference image with a selected verified zero-additional-cost engine","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeImageCreate"}}}},"responses":{"202":{"description":"Same durable priority queue as native Characters and videos"},"200":{"description":"Identical request already exists"},"400":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"413":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"415":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"502":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"description":"Uses the same owned lib- operation ID, durable priority queue and private upload store. The default is Flow/Nano Banana 2.1, gated by live visible Google cost exactly zero. Optional codex-native-image requires operator-verified native execution and ordinary ChatGPT subscription quota; it does not call Chrome or Flow, use an API key or purchase credits. Never retry an uncertain image with another ID or engine: read or recover the same operation. Recovery reconciles existing evidence without resubmitting the agent image. Generated references do not constitute human approval or exact product/character fidelity."}},"/v1/native-images/engines":{"get":{"summary":"Read configured private-reference image engines without generating","description":"Metadata only: returns configured engine identifiers and their declared readiness. Flow/Nano Banana still needs the assigned project and a fresh visible zero-cost preflight through the existing Chrome MCP worker. Codex native images use only the separately verified adapter and existing ChatGPT ordinary quota, with no API-key fallback, no paid API, no Chrome/Flow generation and no additional credit spend. A ready flag is not a live quota reservation, a generation authorization, a Google price check or an audiovisual approval. No engine is enabled by this read.","responses":{"200":{"description":"Declared image engines and conservative readiness metadata; no inference or generation.","content":{"application/json":{"schema":{"type":"object","required":["engines"],"properties":{"engines":{"type":"array","items":{"type":"object","required":["engine"],"properties":{"engine":{"type":"string","enum":["flow-nano-banana","codex-native-image"]},"ready":{"type":"boolean","description":"Optional declared adapter readiness, not live preflight, current quota or generation authorization."},"availability":{"type":"string"},"runtime_availability_verified":{"type":"boolean"},"billing":{"type":"string"},"additional_credit_spend":{"type":"boolean","enum":[false]}},"additionalProperties":true}}}}}}},"401":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Structured API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/native-reference-frames":{"post":{"summary":"Extract an owned video frame as a private continuity reference","description":"Returns response.operation.resource.upload_id, image_url and exact source provenance. A frame supplied as Ingredients guides the following shot; it does not provide the incompatible Frames + native bound Character mode or guarantee identical framing. An uncertain extraction is read by its original lib ID, never resubmitted with a new ID.","security":[{"publicBasic":[]},{"publicSession":[]},{"publicAgent":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeReferenceFrameCreate"}}}},"responses":{"201":{"description":"New private frame extracted; no generation or inference."},"200":{"description":"Identical request returned the existing operation without extracting again."},"400":{"description":"Invalid request or nonzero/bool cost."},"404":{"description":"No source or operation owned by this account."},"409":{"description":"Source changed, frame out of range or same ID used for different content."}}}},"/v1/auth/verification/request":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}},"summary":"Resend email verification","description":"Rotates the pending verification link for an unverified account. The response is intentionally identical for unknown, verified and pending addresses."}},"/v1/auth/verify":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"},"503":{"description":"Observed Flow project capacity unavailable; registration or activation is paused"}},"summary":"Verify an email address","description":"Automatically assigns an unused observed Flow project before activating the account and granting welcome credits. If capacity is exhausted, returns 503; the link remains valid until its original expiry.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["token"],"properties":{"token":{"type":"string","writeOnly":true}}}}}}}},"/v1/auth/login":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}},"summary":"Create a browser session","description":"Returns a CSRF token and sets a Secure HttpOnly session cookie.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["email","password"],"properties":{"email":{"type":"string","format":"email","maxLength":254},"password":{"type":"string","format":"password","minLength":12,"maxLength":512,"writeOnly":true}}}}}}}},"/v1/auth/password/request":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}},"summary":"Request password recovery","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["email"],"properties":{"email":{"type":"string","format":"email","maxLength":254}}}}}}}},"/v1/auth/password/reset":{"post":{"security":[],"responses":{"200":{"description":"Success"},"202":{"description":"Accepted"},"400":{"description":"Invalid request"},"429":{"description":"Rate limited"}},"summary":"Set a new password with a single-use token","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["token","password"],"properties":{"token":{"type":"string","writeOnly":true},"password":{"type":"string","format":"password","minLength":12,"maxLength":512,"writeOnly":true}}}}}}}},"/v1/auth/session":{"get":{"summary":"Restore a browser session with a multi-tab-safe CSRF token","security":[{"publicSession":[]}],"responses":{"200":{"description":"Active session"},"401":{"description":"Session unavailable"}}}},"/v1/auth/providers":{"get":{"summary":"Read configured sign-in providers without secrets","security":[],"responses":{"200":{"description":"Google enabled/ready status and start URL; no client secret or Google tokens"}}}},"/v1/auth/google/start":{"get":{"summary":"Begin optional Google sign-in with browser-bound state, nonce and PKCE","security":[],"responses":{"302":{"description":"Google consent redirect and temporary HttpOnly state cookie"},"503":{"description":"Own Google Web client or official verifier not configured"}}}},"/v1/auth/google/callback":{"get":{"summary":"Complete Google code sign-in on the configured web origin","security":[],"description":"Consumes the browser-bound state once, verifies the Google ID token and creates the same revocable Auro session. Never requests Flow or Drive access. Existing unverified accounts are not silently adopted.","responses":{"302":{"description":"Return to the fixed Auro panel with a session, or a generic sign-in error"},"503":{"description":"Google sign-in not configured"}}}},"/v1/auth/logout":{"post":{"summary":"Revoke the current browser session","security":[{"publicSession":[]}],"responses":{"200":{"description":"Session revoked"}}}},"/v1/account-api-token":{"get":{"summary":"Read your permanent API token metadata without revealing its secret","responses":{"200":{"description":"Current owned credential and revision; no token on GET"}},"security":[{"publicBasic":[]},{"publicSession":[]}]},"post":{"summary":"Create or atomically rotate your permanent API token, revoking the former token","description":"Verified owner session/Basic only; bearer agents cannot manage tokens. No expiry. Stable operation_id and observed revision fence retries. Secrets are private no-store responses and never logged.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["revision","operation_id"],"properties":{"revision":{"type":"integer","minimum":0},"operation_id":{"type":"string","pattern":"^[a-f0-9]{32}$"}}}}}},"responses":{"200":{"description":"Current token, metadata and next revision, or exact same-operation replay"},"409":{"description":"Stale rotation; read the current revision"}},"security":[{"publicBasic":[]},{"publicSession":[]}]}},"/v1/account-api-token/show":{"post":{"summary":"Reveal your current permanent token using owner authentication and session CSRF; no rotation","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Current owned token, no-store"},"403":{"description":"Bearer agent or unavailable account"},"409":{"description":"Revoked token or server key changed; rotate explicitly"}},"security":[{"publicBasic":[]},{"publicSession":[]}]}},"/v1/agent-credentials":{"get":{"summary":"List only your own key metadata; never the secret or digest","security":[{"publicBasic":[]},{"publicSession":[]}],"responses":{"200":{"description":"At most100owned records; max20active keys, max90days"}}},"post":{"summary":"Register a key generated in your client; Google sessions supported","security":[{"publicBasic":[]},{"publicSession":[]}],"description":"The secret stays in your client. Exact same-ID requests are idempotent. Changed, foreign and revoked IDs conflict. Agent Bearer keys cannot manage credentials.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["credential_id","label","expires_at","token_sha256"],"properties":{"credential_id":{"type":"string","pattern":"^[a-f0-9]{32}$"},"label":{"type":"string","minLength":1,"maxLength":80},"expires_at":{"type":"integer"},"token_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}}}},"responses":{"201":{"description":"New digest registered"},"200":{"description":"Exact registration already exists"},"409":{"description":"Different or revoked credential"},"429":{"description":"20active keys reached"}}}},"/v1/agent-credentials/{id}/revoke":{"post":{"summary":"Revoke your own key without changing your password or Google session","security":[{"publicBasic":[]},{"publicSession":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{32}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Owned key revoked; replay is safe"},"404":{"description":"Key not found in your account"}}}},"/v1/credits":{"get":{"summary":"Read the authenticated account credit balance","responses":{"200":{"description":"Credit account"}}}},"/v1/uploads":{"get":{"summary":"List private images owned by the authenticated account","responses":{"200":{"description":"Private image catalog"}}},"post":{"summary":"Upload one private reference image","description":"Send raw JPEG, PNG or WebP bytes. Supply role through X-Auroflow-Role or the role query parameter; filename is optional in the matching header or query parameter. The AUROFLOW browser console uses query parameters so it remains compatible with the fixed Cloudflare preflight. Uploading never compiles, queues or renders a video.","parameters":[{"name":"X-Auroflow-Role","in":"header","required":false,"schema":{"enum":["character","environment","asset","style","start","end"]}},{"name":"X-Auroflow-Filename","in":"header","required":false,"schema":{"type":"string","maxLength":128}},{"name":"role","in":"query","required":false,"schema":{"enum":["character","environment","asset","style","start","end"]}},{"name":"filename","in":"query","required":false,"schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"image/jpeg":{"schema":{"type":"string","format":"binary"}},"image/png":{"schema":{"type":"string","format":"binary"}},"image/webp":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Image stored"},"413":{"description":"Image or account quota exceeded"},"415":{"description":"Unsupported or mismatched image type"}}}},"/v1/uploads/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^img_[a-f0-9]{32}$"}}],"get":{"summary":"Read private image metadata","responses":{"200":{"description":"Image metadata"},"404":{"description":"Image not found for this account"}}}},"/v1/native-references":{"get":{"summary":"Read native Characters and saved voices assigned to your account","description":"Identities created by you or assigned to your current project only. Discovery and compilation do not authorize a render or verify audiovisual continuity. One owned native Character can bind its saved voice with voices[].binding=character. Veo zero quotes were observed; every render still requires live identity and zero-cost verification. Create owned resources through the native authoring endpoints; no raw browser controls or arbitrary catalog writes.","responses":{"200":{"description":"Private native reference catalog and availability"},"503":{"description":"Catalog validation failed"}}}},"/v1/library":{"get":{"summary":"List your private Characters and voices together with explicitly curated public references","parameters":[{"name":"scope","in":"query","schema":{"type":"string","enum":["all","own","public"]}},{"name":"type","in":"query","schema":{"type":"string","enum":["character","voice"]}},{"name":"category","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Owner-safe library metadata, portraits, categories and import availability"}}}},"/v1/library/public/{id}/portrait":{"get":{"summary":"Read an explicitly published, integrity-checked portrait","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^public-[a-z0-9][a-z0-9_-]{0,72}$"}}],"responses":{"200":{"description":"Published PNG/JPEG/WebP bytes"},"404":{"description":"Reference not published"}}}},"/v1/library/characters/{id}/portrait":{"get":{"summary":"Read the portrait of your own saved native Character","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owner-verified portrait bytes"},"404":{"description":"Not visible to this account"}}}},"/v1/library/characters/{id}/voice-sample":{"get":{"summary":"Read private listening-sample availability from the first completed owned native eight-second take","description":"Exact Character-bound voice required. No synthesis or extraction while listing. The returned audio is a past take, not an accent or future timbre certificate.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Availability, private WAV URL and verified source SHA"},"404":{"description":"Reference not visible to this owner"}}}},"/v1/library/characters/{id}/voice-sample/{sha}.wav":{"get":{"summary":"Read a small private PCM listening sample derived on the server from the verified take","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Private WAV mono16k, at most300KiB; no-store"},"404":{"description":"Owned matching sample unavailable"},"409":{"description":"Source or cache integrity changed"}}}},"/v1/library/voices/{id}/voice-sample":{"get":{"summary":"Read private listening-sample availability from the first completed owned native eight-second take","description":"Exact Character-bound voice required. No synthesis or extraction while listing. The returned audio is a past take, not an accent or future timbre certificate.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Availability, private WAV URL and verified source SHA"},"404":{"description":"Reference not visible to this owner"}}}},"/v1/library/voices/{id}/voice-sample/{sha}.wav":{"get":{"summary":"Read a small private PCM listening sample derived on the server from the verified take","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Private WAV mono16k, at most300KiB; no-store"},"404":{"description":"Owned matching sample unavailable"},"409":{"description":"Source or cache integrity changed"}}}},"/v1/library/imports":{"post":{"summary":"Import a published reference revision into your own project without generating an image or a voice preview","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["id","public_id","public_revision","approved","cost_max"],"properties":{"id":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"},"public_id":{"type":"string","pattern":"^public-[a-z0-9][a-z0-9_-]{0,72}$"},"public_revision":{"type":"integer","minimum":1,"maximum":1000000},"create_casting":{"type":"boolean"},"approved":{"type":"boolean","enum":[true]},"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"202":{"description":"Durable owned import accepted; poll the same ID"},"200":{"description":"Existing completed import reused"},"409":{"description":"Revision or identity changed"},"429":{"description":"Account quota or reserved queue capacity reached"}}}},"/v1/library/characters/{id}/casting":{"get":{"summary":"Read your dedicated 8s vertical Character introduction; never generates","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Owned casting metadata, state and verified private video URL"},"404":{"description":"Character not owned"}}},"post":{"summary":"Authorize one queued 8s 9:16 Character introduction at zero additional credits","description":"One stable api-casting-UUID. Uses your own saved voice, public reservations and fair queue, with live zero-price Flow MCP checks. Uncertain submissions are never replayed. Native authoring/imports may opt in with create_casting=true.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["approved","cost_max"],"properties":{"approved":{"const":true},"cost_max":{"type":"integer","const":0}}}}}},"responses":{"202":{"description":"Durable consent queued; read the same status URL"},"200":{"description":"Existing same casting"},"404":{"description":"Character not owned"}}}},"/v1/library/public/{id}/casting/{sha}.mp4":{"get":{"summary":"Read an explicitly curated public Character demonstration as a signed-in member","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Hash-verified vertical MP4; no private job or native IDs"},"401":{"description":"Sign in required"},"404":{"description":"Demonstration not curated"}}}},"/v1/library/imports/{id}":{"get":{"summary":"Read your durable public-reference import and resulting private native IDs","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"}}],"responses":{"200":{"description":"Owned operation and provenance"},"404":{"description":"Not visible to this account"}}}},"/v1/quote":{"post":{"summary":"Validate a request and estimate credits without generating","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativeRequest"}}}},"responses":{"200":{"description":"Requested seconds and reserved credits"}}}},"/v1/status":{"get":{"summary":"Check whether a job can be queued","description":"Browser and balance operation guards take precedence over a busy queue or browser readiness. queue_accepting means work can wait behind a healthy active worker. ready_after_navigation means the bound Flow tab is in an editor; the worker returns to the assigned project and checks every live gate before generating. Neither state approves a render.","responses":{"200":{"description":"Queueing availability; render safety is rechecked by the worker","content":{"application/json":{"schema":{"type":"object","required":["generation","browser_guard","expires_at","permanent_access"],"properties":{"generation":{"type":"object","additionalProperties":false,"required":["ready","status"],"properties":{"ready":{"type":"boolean"},"status":{"enum":["ready","ready_after_navigation","queue_accepting","account_pending","flow_balance_guard_blocked","browser_operation_blocked","browser_reconnect_required","recovery_required","flow_controls_unavailable","temporarily_unavailable"]}}},"browser_guard":{"oneOf":[{"type":"null"},{"type":"object","additionalProperties":false,"required":["enabled","blocked","status"],"properties":{"enabled":{"const":true},"blocked":{"type":"boolean"},"status":{"enum":["ready","blocked","unavailable"]}}}]},"expires_at":{"type":["string","null"],"format":"date-time"},"permanent_access":{"type":"boolean"}}}}}}}}},"/v1/social/me":{"get":{"summary":"Read your creator profile and published posts","responses":{"200":{"description":"Profile without public email or private prompts"}}}},"/v1/social/profile":{"post":{"summary":"Update your creator profile","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["handle","display_name","bio"],"properties":{"handle":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{2,23}$"},"display_name":{"type":"string","minLength":2,"maxLength":60},"bio":{"type":"string","maxLength":280}}}}}},"responses":{"200":{"description":"Updated profile"},"409":{"description":"Handle already taken"}}}},"/v1/social/creators":{"get":{"summary":"Browse verified creator profiles, including those without videos","parameters":[{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":4000}}],"responses":{"200":{"description":"Up to 40 public pseudonyms, display names and bios; no emails"}}}},"/v1/social/jobs":{"get":{"summary":"Browse all member jobs, including queued and blocked states","description":"Members only. Returns a sanitized, paginated projection with author and video variants; never prompts, email, references, project URLs or balances.","parameters":[{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":1000000}}],"responses":{"200":{"description":"At most 40 jobs, offset and next_offset"}}}},"/v1/social/profiles/{handle}/jobs":{"get":{"summary":"Browse one creator’s jobs","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string"}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":1000000}}],"responses":{"200":{"description":"Sanitized jobs by creator"},"404":{"description":"Profile not found"}}}},"/v1/social/videos/jobs/{job_id}/variants/{ordinal}":{"get":{"summary":"Stream a completed community video to a signed-in member","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"}},{"name":"ordinal","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}}],"responses":{"200":{"description":"MP4 stream"},"206":{"description":"Byte range"},"404":{"description":"Video unavailable"}}},"head":{"summary":"Inspect a community MP4","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"}},{"name":"ordinal","in":"path","required":true,"schema":{"type":"integer","minimum":1,"maximum":4}}],"responses":{"200":{"description":"Video metadata"}}}},"/v1/social/feed":{"get":{"summary":"List only opted-in published videos for signed-in members","parameters":[{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":4000}}],"responses":{"200":{"description":"Up to 40 posts; never includes email, job ID or prompt"}}}},"/v1/social/profiles/{handle}":{"get":{"summary":"Read a member profile and published videos","parameters":[{"name":"handle","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{2,23}$"}}],"responses":{"200":{"description":"Profile and posts"},"404":{"description":"Profile not found"}}}},"/v1/social/posts":{"post":{"summary":"Add an optional titled showcase post for one owned completed variant","description":"The community jobs listing is automatic; this endpoint adds a separate curated title and caption.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["job_id","variant","title","caption"],"properties":{"job_id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4},"title":{"type":"string","minLength":2,"maxLength":120},"caption":{"type":"string","maxLength":500}}}}}},"responses":{"201":{"description":"Published post"},"404":{"description":"Job not owned"},"409":{"description":"Video not complete"}}}},"/v1/social/posts/{post_id}/unpublish":{"post":{"summary":"Remove the optional showcase post, not the community job","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","pattern":"^post_[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Unpublished"},"404":{"description":"Post not yours or not published"}}}},"/v1/social/videos/{post_id}":{"get":{"summary":"Stream a published MP4 to a signed-in member","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","pattern":"^post_[a-f0-9]{32}$"}}],"responses":{"200":{"description":"MP4 stream"},"206":{"description":"Byte range"},"404":{"description":"Post unpublished or video unavailable"}}},"head":{"summary":"Inspect a published MP4 without a response body","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","pattern":"^post_[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Video metadata"},"404":{"description":"Not available"}}}},"/v1/mcp":{"post":{"summary":"Authenticated Auro MCP tools (stateless Streamable HTTP)","description":"JSON-RPC initialize, tools/list and tools/call. Same account, tenant, credit policy and queue as REST. No browser controls. Google generation requires exact zero; Auro platform credits remain separate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC response"},"202":{"description":"Notification accepted"},"401":{"description":"Sign in required"}}},"get":{"summary":"SSE is not offered","responses":{"405":{"description":"Use POST JSON-RPC"}}}},"/v1/film-studio":{"get":{"summary":"Read private film studio and audio engine availability","responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/agent-workflows.json":{"get":{"summary":"Discover production workflows and maintained agent skills without an account","security":[],"responses":{"200":{"description":"Static workflow contract; no live readiness or zero-cost approval"}}}},"/v1/agent-workflows":{"get":{"summary":"Read film, Ads, documentary, series and Ingredients workflow contracts","responses":{"200":{"description":"Static workflow contract; no live readiness or zero-cost approval"}}}},"/v1/agent-workflows/plan":{"post":{"summary":"Calculate an exact-duration edit plan without inference or generation","description":"Pure planning. Does not fetch a source, save a film, reserve credits, create media or authorize rendering. execution_ready describes static route limits only; live account, reference and visible-zero checks remain mandatory.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["id","production_type","aspect","target_duration_seconds","cost_max"],"properties":{"id":{"type":"string","pattern":"^workflow-[a-z0-9][a-z0-9_-]{0,63}$"},"production_type":{"type":"string","enum":["film","spot","documentary","series_episode","ingredients"]},"aspect":{"type":"string","enum":["16:9","9:16"]},"target_duration_seconds":{"type":"integer","minimum":1,"maximum":1200},"cost_max":{"type":"integer","enum":[0]},"finishing":{"type":"boolean","default":true,"description":"Server framing/audio finishing; at most 50 clips and 600 seconds. False selects basic server concatenation, at most 100 clips."},"ad_preset":{"type":"string","minLength":1,"maxLength":100},"continuity":{"type":"object","additionalProperties":false,"dependentRequired":{"character_id":["voice_id"],"voice_id":["character_id"]},"properties":{"character_id":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$"},"voice_id":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$"},"environment_upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"product_upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"}}}}}}}},"responses":{"200":{"description":"Deterministic plan with source shots, frame-exact trims, batches and blockers"},"400":{"description":"Invalid type, duration, continuity or nonzero cost"},"401":{"description":"Authentication required"},"403":{"description":"Registered account and valid session CSRF required"}}}},"/v1/films":{"get":{"summary":"List your own films","responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}},"parameters":[{"name":"compact","in":"query","schema":{"type":"integer","enum":[1]},"description":"Opt-in summaries without scripts. Omit all query parameters for the original full projection."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":20,"default":5},"description":"Requires compact=1; recent owned films only."},{"name":"workflow","in":"query","schema":{"type":"string","enum":["url2short"]},"description":"Requires compact=1; filter owned URL2Short projects before the limit."}]},"post":{"summary":"Queue a private screenplay draft","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^film-[a-z0-9][a-z0-9_-]{0,78}$"},"cost_max":{"type":"integer","enum":[0]},"source_url":{"type":"string","minLength":1,"maxLength":2048,"format":"uri"},"summary":{"type":"string","minLength":1,"maxLength":10000},"engine":{"type":"string","enum":["local","codex-luna-medium"],"description":"Select explicitly. New omitted-engine requests use Codex Luna medium; existing IDs keep their saved engine."},"shots":{"type":"integer","minimum":1,"maximum":12,"default":3},"aspect":{"type":"string","enum":["16:9","9:16"],"default":"16:9"},"style":{"type":"string","minLength":1,"maxLength":1000},"language":{"type":"string","minLength":1,"maxLength":100},"dialogue_literals":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"string","minLength":0,"maxLength":120}},"auto_render":{"type":"boolean","default":false},"cast_mode":{"type":"string","enum":["auto","library","text"]},"character_id":{"type":"string","pattern":"^[a-f0-9-]{36}$"},"voice_id":{"type":"string","pattern":"^[a-f0-9-]{36}$"},"voice_preset":{"type":"string","enum":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux"]},"voice_performance":{"type":"string","minLength":1,"maxLength":1500},"workflow":{"type":"string","enum":["url2short"]},"short_recipe":{"type":"string","enum":["pregunta","mito","historia","comparacion","tres","dentro","escala","imposible"]},"source_media_approved":{"type":"boolean","enum":[true]},"production_type":{"type":"string","enum":["film","spot"],"default":"film"},"objective":{"type":"string","minLength":0,"maxLength":500},"audience":{"type":"string","minLength":0,"maxLength":500},"call_to_action":{"type":"string","minLength":0,"maxLength":200},"character_direction":{"type":"string","minLength":0,"maxLength":1000},"ad_preset":{"type":"string","enum":["youtube-bumper","youtube-in-stream","youtube-shorts","facebook-feed","facebook-reels","instagram-reels","instagram-stories","tiktok-in-feed","linkedin-feed","x-vertical"]},"target_duration_seconds":{"type":"integer","enum":[6,15,30,60]}},"required":["id","cost_max"],"oneOf":[{"required":["source_url"],"not":{"required":["summary"]}},{"required":["summary"],"not":{"required":["source_url"]}}],"allOf":[{"if":{"anyOf":[{"required":["workflow"]},{"required":["short_recipe"]},{"required":["source_media_approved"]}]},"then":{"required":["workflow","short_recipe","source_url","source_media_approved","aspect","shots"],"properties":{"aspect":{"const":"9:16"},"shots":{"enum":[4,6,7]},"auto_render":{"const":false},"cast_mode":{"enum":["auto","library","text"],"default":"auto"},"production_type":{"const":"film"}},"not":{"anyOf":[{"required":["summary"]},{"required":["ad_preset"]},{"required":["target_duration_seconds"]}]}}},{"if":{"anyOf":[{"required":["ad_preset"]},{"required":["target_duration_seconds"]}]},"then":{"required":["production_type","ad_preset","target_duration_seconds"],"properties":{"production_type":{"const":"spot"}}}},{"if":{"required":["cast_mode"],"properties":{"cast_mode":{"const":"library"}}},"then":{"required":["character_id"]}},{"if":{"required":["production_type"],"properties":{"production_type":{"const":"spot"}}},"then":{"properties":{"call_to_action":{"maxLength":120}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"youtube-bumper"}}},"then":{"properties":{"target_duration_seconds":{"enum":[6]},"aspect":{"enum":["16:9"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"youtube-in-stream"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["16:9","9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"youtube-shorts"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"facebook-feed"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["16:9"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"facebook-reels"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"instagram-reels"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"instagram-stories"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15]},"aspect":{"enum":["9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"tiktok-in-feed"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["9:16","16:9"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"linkedin-feed"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["16:9","9:16"]}}}},{"if":{"required":["ad_preset"],"properties":{"ad_preset":{"const":"x-vertical"}}},"then":{"properties":{"target_duration_seconds":{"enum":[15,30,60]},"aspect":{"enum":["9:16"]}}}},{"if":{"required":["target_duration_seconds"],"properties":{"target_duration_seconds":{"const":6}}},"then":{"properties":{"shots":{"const":1},"call_to_action":{"maxLength":70},"dialogue_literals":{"items":{"maxLength":70}}}}},{"if":{"required":["target_duration_seconds"],"properties":{"target_duration_seconds":{"const":15}}},"then":{"properties":{"shots":{"const":2},"call_to_action":{"maxLength":91},"dialogue_literals":{"items":{"maxLength":91}}}}},{"if":{"required":["target_duration_seconds"],"properties":{"target_duration_seconds":{"const":30}}},"then":{"properties":{"shots":{"const":4},"call_to_action":{"maxLength":91},"dialogue_literals":{"items":{"maxLength":91}}}}},{"if":{"required":["target_duration_seconds"],"properties":{"target_duration_seconds":{"const":60}}},"then":{"properties":{"shots":{"const":8},"call_to_action":{"maxLength":91},"dialogue_literals":{"items":{"maxLength":91}}}}}]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"},"202":{"description":"Durable project queued"},"429":{"description":"Per-account or global preparation queue full"}}}},"/v1/films/{id}":{"get":{"summary":"Read your durable private project","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/film-reviews":{"get":{"summary":"List your own film-reviews","responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}},"post":{"summary":"Queue audio understanding of an owned completed sequence","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^review-[a-z0-9][a-z0-9_-]{0,78}$"},"cost_max":{"type":"integer","enum":[0]},"sequence_id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"expected_dialogue":{"type":"string","minLength":0,"maxLength":4000}},"required":["id","sequence_id","cost_max"]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"},"202":{"description":"Durable project queued"},"429":{"description":"Per-account or global preparation queue full"}}}},"/v1/film-reviews/{id}":{"get":{"summary":"Read your durable private project","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/films/{id}/script":{"post":{"summary":"Save screenplay with revision fencing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"integer","minimum":1},"cost_max":{"type":"integer","enum":[0]},"script":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","minLength":1,"maxLength":500},"synopsis":{"type":"string","minLength":1,"maxLength":2000},"character":{"type":"string","minLength":1,"maxLength":2000},"continuity":{"type":"string","minLength":1,"maxLength":2000},"shots":{"type":"array","minItems":1,"maxItems":12,"items":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"visual":{"type":"string","minLength":1,"maxLength":1800},"dialogue":{"type":"string","minLength":0,"maxLength":120},"sound":{"type":"string","minLength":1,"maxLength":400}},"required":["title","visual","dialogue","sound"]}}},"required":["title","synopsis","character","continuity","shots"]}},"required":["revision","cost_max","script"]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/films/{id}/render":{"post":{"summary":"Explicitly render a film once with zero platform and Google cost","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"integer","minimum":1},"cost_max":{"type":"integer","enum":[0]},"cast_mode":{"type":"string","enum":["auto","library","text"]},"character_id":{"type":"string","pattern":"^[a-f0-9-]{36}$"},"voice_id":{"type":"string","pattern":"^[a-f0-9-]{36}$"},"voice_preset":{"type":"string","enum":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux"]},"voice_performance":{"type":"string","minLength":1,"maxLength":1500}},"required":["revision","cost_max"]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/films/{id}/recover":{"post":{"summary":"Explicitly render a film once with zero platform and Google cost","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"integer","minimum":1},"cost_max":{"type":"integer","enum":[0]},"refresh_script":{"type":"boolean"},"voice_preset":{"type":"string","enum":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux"]},"voice_performance":{"type":"string","minLength":1,"maxLength":1500}},"required":["revision","cost_max"]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/film-reviews/{id}/recover":{"post":{"summary":"Explicitly authorize one new assessment of the same verified cached audio","description":"Requires an owned inconclusive or failed review and its observed revision. Preserves past attempts and input hashes, never generates video or re-extracts audio. Responses that refuse or describe a hypothetical review are inconclusive, including historical completed responses projected at read time.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^review-[a-z0-9][a-z0-9_-]{0,78}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"revision":{"type":"integer","minimum":1},"cost_max":{"type":"integer","enum":[0]}},"required":["revision","cost_max"]}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"},"202":{"description":"One durable audio review attempt queued"},"429":{"description":"Eight explicit attempts reached"}}}},"/v1/films/{id}/delivery":{"post":{"summary":"Select an owned completed reframed or finished sequence as the film delivery","description":"No render. Same completed original jobs, order, variant 1, original trims, aspect and duration; local server assembly preserving native audio. Legacy films retain 0–8 trims; Ads retain their delivery_plan trims and exact duration. Keeps the original sequence, delivery history and input hashes. Existing audio reviews stay bound to their own sequence.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^film-[a-z0-9][a-z0-9_-]{0,78}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["revision","sequence_id","cost_max"],"properties":{"revision":{"type":"integer","minimum":1},"sequence_id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/agent-start":{"get":{"summary":"Compact first-film guidance without inference or live readiness claims","responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/films/{id}/next":{"get":{"summary":"Read one suggested next operation from your owned observed film state; never dispatches it","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^film-[a-z0-9][a-z0-9_-]{0,78}$"}}],"responses":{"200":{"description":"Private project or model capabilities"},"401":{"description":"Sign in required"},"404":{"description":"Resource not owned"},"409":{"description":"Revision or stable ID conflict"}}}},"/v1/native-operations/{id}/image":{"get":{"summary":"Read your private generated portrait","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"}}],"responses":{"200":{"description":"Verified PNG/JPEG/WebP image; same account required"},"404":{"description":"Image not available to this account"}}}},"/v1/library/public/{id}/thumbnail/card-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=60 kB and <=384 px; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/library/public/{id}/thumbnail/detail-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=150 kB and <=960 px; only fetched when opening a detail; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/library/characters/{id}/thumbnail/card-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=60 kB and <=384 px; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/library/characters/{id}/thumbnail/detail-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=150 kB and <=960 px; only fetched when opening a detail; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/library/uploads/{id}/thumbnail/card-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=60 kB and <=384 px; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/library/uploads/{id}/thumbnail/detail-v1/{sha}.webp":{"get":{"summary":"Read a precomputed small WebP thumbnail after account authorization; never encodes or reads the original PNG","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"sha","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-f0-9]{64}$"}},{"name":"If-None-Match","in":"header","schema":{"type":"string"}}],"responses":{"200":{"description":"WebP <=150 kB and <=960 px; only fetched when opening a detail; ETag supplied"},"304":{"description":"Authorized identity unchanged"},"404":{"description":"Not visible to this account or thumbnail not precomputed"}}}},"/v1/motion/capabilities":{"get":{"summary":"Read installed deterministic motion capabilities","responses":{"200":{"description":"Owner-filtered result"}}}},"/v1/motion/sources":{"get":{"summary":"List your completed sources and casting voice samples","responses":{"200":{"description":"Owner-filtered result"}}}},"/v1/motion/queue":{"get":{"summary":"Read your graphics queue and assigned priority","responses":{"200":{"description":"Owner-filtered result"}}}},"/v1/motion":{"get":{"summary":"List only your motion jobs and queue","responses":{"200":{"description":"Private jobs and positions"}}},"post":{"summary":"Queue a zero-credit deterministic HyperFrames composition","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotionRequest"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same-ID replay"},"409":{"description":"Intent differs or unavailable"}}}},"/v1/motion/plan":{"post":{"summary":"Validate motion data and owned pinned sources without rendering","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MotionRequest"}}}},"responses":{"200":{"description":"Plan, fingerprints and runtime readiness"}}}},"/v1/motion/{id}":{"get":{"summary":"Read your own durable motion job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"Job and verification"},"404":{"description":"Not owned"}}}},"/v1/motion/{id}/video":{"get":{"summary":"Stream your completed verified MP4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"MP4"},"206":{"description":"Requested byte range"},"404":{"description":"Not owned"}}}},"/v1/motion/{id}/cancel":{"post":{"summary":"Cancel your queued motion job","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["cost_max"],"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Queued job cancelled"},"409":{"description":"Already active or terminal"}}}},"/v1/production-capabilities":{"get":{"summary":"Read production implementation, independent runtime readiness and enforced spending policies","description":"Authenticated registered accounts only. No provider calls, live account or balance checks, persistence or generation. Included-credit authorization is not a quote. Music remains unavailable until its native price and result collection are verified.","responses":{"200":{"description":"Compact capabilities and explicit blockers"},"401":{"description":"Authentication required"},"403":{"description":"Registered account required"},"400":{"description":"Queries are not supported"}}}},"/v1/finishing/plan":{"post":{"summary":"Validate typed finishing steps without saving, source fetching or rendering","description":"Pure planning for a separate editable graphics track. Does not verify ownership, runtime, price or human approval, generate narration or music, or authorize a render. Registered account and normal session CSRF checks apply.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishingRequest"}}}},"responses":{"200":{"description":"Steps, unchanged create request and explicit readiness checks"},"400":{"description":"Invalid typed request, JSON or query"},"401":{"description":"Authentication required"},"403":{"description":"Registered account and session CSRF required"}}}},"/v1/graphics/tracks":{"get":{"summary":"List compact owned editable graphics tracks","responses":{"200":{"description":"Owned track summaries; no inference"}}},"post":{"summary":"Save separate graphics data without changing the base video or rendering","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsCreate"}}}},"responses":{"201":{"description":"Track revision1 saved"},"200":{"description":"Same-ID replay"},"409":{"description":"Different saved intent"}}}},"/v1/graphics/suggest":{"post":{"summary":"Suggest sparse editorial graphics slots from supplied facts, without inference or rendering","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsSuggest"}}}},"responses":{"200":{"description":"Compact recommendations; no invented facts or automatic subtitles"}}}},"/v1/graphics/review":{"post":{"summary":"Estimate legibility, overlaps and editorial safe zones without reading media or rendering","description":"Pure deterministic design review. No ownership, runtime, factual or visual verification. Texts and values remain literal; estimates never authorize rendering or certify final audiovisual quality.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsReview"}}}},"responses":{"200":{"description":"Estimated layout findings, warnings and required design decisions"},"400":{"description":"Invalid typed composition or platform"},"401":{"description":"Authentication required"},"403":{"description":"Verified account and session CSRF required"}}}},"/v1/graphics/templates":{"post":{"summary":"Find compact graphics recipes by situation or read one typed template with provenance","description":"Curated original data adaptations inspired by attributed public examples. Recipes require unresolved literal/factual/media inputs. No remote code, media binding, factual approval, save, inference or render.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsTemplates"}}}},"responses":{"200":{"description":"Compact catalog or one non-sendable typed recipe with stable hashes"},"400":{"description":"Invalid template, incompatible filters or request"},"401":{"description":"Authentication required"},"403":{"description":"Verified account and session CSRF required"}}}},"/v1/graphics/styles":{"get":{"summary":"Read graphic style presets and supported style brief directives; no inference or render","responses":{"200":{"description":"Typed style catalog, supported overrides and limits"}}}},"/v1/video-guidance":{"get":{"summary":"Read visual style presets and the active versioned video quality rules","responses":{"200":{"description":"Styles, immutable policy receipt and free-text guidance contract"}}}},"/v1/video-prompts/prepare":{"post":{"summary":"Prepare visual direction and explicit safer action substitutions without inference, save or generation","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoPromptPreparation"}}}},"responses":{"200":{"description":"Original and prepared prompts, substitutions, style hash and zero-cost receipt"},"400":{"description":"Unsupported fields or invalid zero-cost/style request"}}}},"/v1/graphics/tracks/{id}":{"get":{"summary":"Read an owned track or immutable revision; compact by default","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"}},{"name":"revision","in":"query","schema":{"type":"integer","minimum":1}},{"name":"compact","in":"query","schema":{"type":"integer","enum":[0,1],"default":1}}],"responses":{"200":{"description":"Layer IDs, revision and render links; compact=0 includes editable composition"},"404":{"description":"Not owned"}}},"post":{"summary":"Save a small layer patch with expected_revision; keep the original sources","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsUpdate"}}}},"responses":{"200":{"description":"New immutable revision or exact replay"},"409":{"description":"Revision conflict"}}}},"/v1/graphics/tracks/{id}/plan":{"post":{"summary":"Validate an exact graphics revision and pin source hashes without rendering","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsPlan"}}}},"responses":{"200":{"description":"Plan or same-ID render replay"},"202":{"description":"One render queued"},"409":{"description":"Source or intent conflict"}}}},"/v1/graphics/tracks/{id}/render":{"post":{"summary":"Compose an exact graphics revision through the durable zero-credit Motion queue","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GraphicsRender"}}}},"responses":{"200":{"description":"Plan or same-ID render replay"},"202":{"description":"One render queued"},"409":{"description":"Source or intent conflict"}}}},"/v1/voices/catalog":{"get":{"summary":"Observed Vids voices and existing Spanish audio samples; no synthesis","responses":{"200":{"description":"Authenticated catalog or own jobs"}}}},"/v1/voices/jobs":{"get":{"summary":"List your private narration jobs","responses":{"200":{"description":"Authenticated catalog or own jobs"}}},"post":{"summary":"Queue one included Vids narration with live exact-zero checks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VidsVoiceRequest"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same-ID replay"},"409":{"description":"Conflicting intent"}}}},"/v1/voices/plan":{"post":{"summary":"Validate literal narration text and voice; no live quote or generation","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VidsVoiceRequest"}}}},"responses":{"200":{"description":"Deterministic zero-credit plan"}}}},"/v1/voices/jobs/{id}":{"get":{"summary":"Read your same narration job; no resubmission","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"tts-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"Private job and verified download URL"},"404":{"description":"Not owned"}}}},"/v1/voices/jobs/{id}/audio":{"get":{"summary":"Stream your verified PCM WAV","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"tts-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"WAV"},"206":{"description":"Byte range"},"404":{"description":"Not owned"}}}},"/v1/voices/jobs/{id}/recover":{"post":{"summary":"Resume collection of the SAME native job; never regenerate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"tts-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cost_max"],"additionalProperties":false,"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Same job recovery requested"}}}},"/v1/voices/jobs/{id}/resume-preparation":{"post":{"summary":"Explicitly resume the SAME authorized failed narration preparation; no new ID","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"tts-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cost_max"],"additionalProperties":false,"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Same original narration job; queued is not native pre-submit proof"},"403":{"description":"Original authorization required"},"404":{"description":"Not owned"},"409":{"description":"Preparation cannot safely resume or the job changed"},"429":{"description":"Owned or global pending limit"},"503":{"description":"Narration disabled"}},"description":"Admission queues the original request only. Before any native mutation or first submit, the runner must verify the exact original account, document and voice lock and prove no reservation, submit intent, acknowledgement, uncertain outcome or completion. Unknown evidence blocks. Submitted or uncertain synthesis remains collect-only; after transport uncertainty read the same tts- ID."}},"/v1/native-media/capabilities":{"get":{"summary":"Provider contracts; not a live zero-credit quote","responses":{"200":{"description":"Provider availability and restrictions"}}}},"/v1/native-media/plan":{"post":{"summary":"Validate native media intent without browser or generation","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeMediaRequest"}}}},"responses":{"200":{"description":"Plan only"}}}},"/v1/native-media/jobs":{"get":{"summary":"List your native media jobs","responses":{"200":{"description":"Owned jobs"}}},"post":{"summary":"Queue native media once with live exact0 credits/cash gates","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NativeMediaRequest"}}}},"responses":{"202":{"description":"Queued"},"200":{"description":"Same ID"},"409":{"description":"Intent conflict"}}}},"/v1/native-media/jobs/{id}":{"get":{"summary":"Read same owned native job without dispatch","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"nm-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"Job"},"404":{"description":"Not owned"}}}},"/v1/native-media/jobs/{id}/file":{"get":{"summary":"Private verified native file; byte-range supported","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"nm-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"MP4 or audio"},"206":{"description":"Byte range"},"404":{"description":"Not owned"}}}},"/v1/native-media/jobs/{id}/recover":{"post":{"summary":"Collect SAME native job only; never resubmit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"nm-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["cost_max"],"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Collection queued"}}}},"/v1/native-media/jobs/{id}/resume-preparation":{"post":{"summary":"Explicitly resume an unsent preparation only after native durable proof; never replay an uncertain submit","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"nm-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["cost_max"],"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Collection queued"}}}},"/v1/music/jobs":{"get":{"summary":"List your private music jobs","responses":{"200":{"description":"Authenticated catalog or own jobs"}}},"post":{"summary":"Queue one included Vids music with live exact-zero checks","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VidsMusicRequest"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same-ID replay"},"409":{"description":"Conflicting intent"}}}},"/v1/music/plan":{"post":{"summary":"Validate song prompt, duration mode and instrumental choice; no browser, writes or generation","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VidsMusicRequest"}}}},"responses":{"200":{"description":"Deterministic zero-credit plan"}}}},"/v1/music/jobs/{id}":{"get":{"summary":"Read your same music job; no resubmission","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mus-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"Private job and verified download URL"},"404":{"description":"Not owned"}}}},"/v1/music/jobs/{id}/audio":{"get":{"summary":"Stream your verified PCM WAV","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mus-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"WAV"},"206":{"description":"Byte range"},"404":{"description":"Not owned"}}}},"/v1/music/jobs/{id}/recover":{"post":{"summary":"Resume collection of the SAME native job; never regenerate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mus-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cost_max"],"additionalProperties":false,"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Same job recovery requested"}}}},"/v1/music/jobs/{id}/resume-preparation":{"post":{"summary":"Explicitly resume the same authorized failed preparation; native proof of no previous submit is mandatory","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mus-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cost_max"],"additionalProperties":false,"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Same job preparation resume queued; native proof still required"},"409":{"description":"State changed or prior submission; read and collect the same ID"}}}},"/v1/audio/mixes":{"get":{"summary":"List your owned standalone WAV mixes","responses":{"200":{"description":"Owned jobs"}}},"post":{"summary":"Queue one deterministic WAV mix from owned sources, without provider generation","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioMixRequest"}}}},"responses":{"202":{"description":"Durably queued"},"200":{"description":"Same-ID replay"},"409":{"description":"Intent or source conflict"}}}},"/v1/audio/mixes/plan":{"post":{"summary":"Pure validation of up to eight audio tracks and 600seconds; no source fetch, writes or render","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioMixRequest"}}}},"responses":{"200":{"description":"Typed plan; sources not yet verified"}}}},"/v1/audio/mixes/queue":{"get":{"summary":"Read your mix positions and aggregate queue counts without other owners IDs","responses":{"200":{"description":"Durable priority and fair-turn queue"}}}},"/v1/audio/mixes/{id}":{"get":{"summary":"Read your same WAV mix, pinned sources and verified output SHA","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mix-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"Owned job"},"404":{"description":"Not owned"}}}},"/v1/audio/mixes/{id}/audio":{"get":{"summary":"Stream your completed verified stereo48kHz PCM16 WAV","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mix-[a-z0-9][a-z0-9_-]{0,63}$"}}],"responses":{"200":{"description":"WAV"},"206":{"description":"Byte range"},"404":{"description":"Not owned"}}}},"/v1/audio/mixes/{id}/recover":{"post":{"summary":"Recover the same interrupted deterministic mix with unchanged source pins; no synthesis","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"mix-[a-z0-9][a-z0-9_-]{0,63}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["cost_max"],"properties":{"cost_max":{"type":"integer","enum":[0]}}}}}},"responses":{"200":{"description":"Same job recovered or returned"},"409":{"description":"Sources or receipt changed"}}}},"/v1/audio/uploads":{"get":{"summary":"List your own verified audio assets for editable mixing","responses":{"200":{"description":"Private audio catalog"}}},"post":{"summary":"Decode one owned music, voice or sound file to PCM WAV without generation; 10MiB input, max600seconds","parameters":[{"name":"X-Audio-Name","in":"header","required":false,"schema":{"type":"string","maxLength":1152},"description":"Percent-encoded display filename, at most128 decoded characters; never a path."}],"requestBody":{"required":true,"content":{"audio/wav":{"schema":{"type":"string","format":"binary"}},"audio/x-wav":{"schema":{"type":"string","format":"binary"}},"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"audio/mp4":{"schema":{"type":"string","format":"binary"}},"audio/aac":{"schema":{"type":"string","format":"binary"}},"audio/ogg":{"schema":{"type":"string","format":"binary"}},"audio/flac":{"schema":{"type":"string","format":"binary"}}}},"responses":{"201":{"description":"Owned decoded asset, opaque aud_ ID and SHA"},"200":{"description":"Exact same owned input already stored"},"413":{"description":"Input or storage limit"},"415":{"description":"Unsupported audio format"}}}},"/v1/audio/uploads/{id}":{"get":{"summary":"Read your own audio metadata","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"}}],"responses":{"200":{"description":"Verified asset metadata"},"404":{"description":"Not owned"}}}},"/v1/audio/uploads/{id}/audio":{"get":{"summary":"Stream your own SHA-verified PCM WAV","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"}}],"responses":{"200":{"description":"WAV"},"206":{"description":"Byte range"},"404":{"description":"Not owned"}}}}},"components":{"securitySchemes":{"publicBasic":{"type":"http","scheme":"basic","description":"Email and password over HTTPS for API clients and LLM tools."},"publicSession":{"type":"apiKey","in":"cookie","name":"__Host-auroflow_session","description":"Secure HttpOnly browser session. POST requests also require X-CSRF-Token or Authorization: Auroflow-CSRF <token>."},"publicAgent":{"type":"http","scheme":"bearer","bearerFormat":"afk credential","description":"Revocable agent credential for an existing verified normal user. Public media API only; cannot alter login, sessions or credentials. Keep it in the client secret store."}},"parameters":{"JobId":{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"}}},"responses":{"Error":{"description":"Structured local API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBodies":{"CreativeRequest":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreativeRequest"}}}}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"CreativeRequest":{"title":"VideoDirector creative request v3","type":"object","additionalProperties":false,"required":["id","prompt"],"properties":{"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"prompt":{"type":"string","minLength":1,"maxLength":12000},"prompt_style":{"enum":["v3","raw"],"default":"v3","description":"raw preserves the source body for plain text generation, with the mandatory versioned production prompt policy appended; v3 is the stable structured compiler."},"operation":{"enum":["generate","extend","edit_scene"],"default":"generate"},"mode":{"enum":["text","frames","ingredients"],"default":"text"},"model":{"enum":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"]},"aspect":{"enum":["16:9","9:16"],"default":"16:9"},"duration_seconds":{"enum":[4,6,8,10],"default":8},"resolution":{"enum":["360p","720p"],"default":"720p"},"audio":{"enum":["native","post","silent"],"default":"native"},"outputs":{"type":"integer","minimum":1,"maximum":4,"default":1},"cost_max":{"const":0},"content_language":{"type":"string","default":"es-ES"},"direction_language":{"const":"en"},"references":{"type":"array","maxItems":3,"items":{"$ref":"#/components/schemas/PublicReferenceInput"},"description":"Generic public references. Server-local paths are never accepted from public callers."},"source_asset":{"$ref":"#/components/schemas/CreativeRequest_SourceAsset"},"sequence":{"$ref":"#/components/schemas/CreativeRequest_SequenceContext"},"shot":{"$ref":"#/components/schemas/CreativeRequest_Shot"},"scene":{"$ref":"#/components/schemas/CreativeRequest_Shot","deprecated":true,"description":"Legacy alias for shot."},"beats":{"type":"array","items":{"$ref":"#/components/schemas/CreativeRequest_Beat"}},"dialogues":{"type":"array","items":{"$ref":"#/components/schemas/CreativeRequest_SpeechCue"}},"narration":{"type":"array","items":{"$ref":"#/components/schemas/CreativeRequest_SpeechCue"}},"voices":{"type":"array","items":{"$ref":"#/components/schemas/CreativeRequest_Voice"},"minContains":0,"maxContains":1,"contains":{"type":"object","required":["flow_voice_id"]}},"audio_cues":{"type":"array","items":{"$ref":"#/components/schemas/CreativeRequest_AudioCue"}},"agent_profile":{"$ref":"#/components/schemas/CreativeRequest_AgentProfile"},"first_frame":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"start"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"start"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Start image for Frames. The gateway infers mode=frames when mode is omitted."},"firstFrame":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"start"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"start"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Start image for Frames. The gateway infers mode=frames when mode is omitted."},"firstframe":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"start"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"start"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Start image for Frames. The gateway infers mode=frames when mode is omitted."},"last_frame":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"end"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"end"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Optional end image for Frames."},"lastFrame":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"end"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"end"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Optional end image for Frames."},"lastframe":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"end"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"const":"end"},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["flow_character_id"]}}]}],"description":"Optional end image for Frames."},"ingredients":{"type":"array","maxItems":3,"items":{"$ref":"#/components/schemas/PublicReferenceInput"}},"characters":{"type":"array","maxItems":3,"items":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"character"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"enum":["start","end"]},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["slot"]}}]}]},"description":"Character image or native Character intent; counted inside the three-Ingredient total. Native rendering requires an owned catalog and explicit character-bound voice; unbound intent remains blocked."},"character_images":{"type":"array","maxItems":3,"items":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"character"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"enum":["start","end"]},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["slot"]}}]}]},"description":"Character image or native Character intent; counted inside the three-Ingredient total. Native rendering requires an owned catalog and explicit character-bound voice; unbound intent remains blocked."},"characterImages":{"type":"array","maxItems":3,"items":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"const":"character"},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"enum":["start","end"]},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}},{"not":{"required":["slot"]}}]}]},"description":"Character image or native Character intent; counted inside the three-Ingredient total. Native rendering requires an owned catalog and explicit character-bound voice; unbound intent remains blocked."}},"allOf":[{"if":{"allOf":[{"properties":{"model":{"const":"Veo 3.1 - Lite [Lower Priority]"}}},{"properties":{"operation":{"const":"generate"}}}]},"then":{"properties":{"resolution":{"enum":["720p"]},"duration_seconds":{"enum":[4,6,8]}},"allOf":[{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"text"}}},{"allOf":[{"not":{"required":["mode"]}},{"not":{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"anyOf":[{"required":["references"],"properties":{"references":{"minItems":1}}},{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]}]}}]}]},"then":{"properties":{"duration_seconds":{"enum":[4,6,8]}}}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"frames"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["start","end"]}}}}}}]}]}]},"then":{"properties":{"duration_seconds":{"enum":[4,6,8]}}}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"ingredients"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["character","environment","asset","style"]}}}}}}]}]}]},"then":{"properties":{"duration_seconds":{"enum":[8]}}}}]}},{"if":{"allOf":[{"properties":{"model":{"const":"Omni 1.1 Flash"}},"required":["model"]},{"properties":{"operation":{"const":"generate"}}}]},"then":{"properties":{"resolution":{"enum":["360p","720p"]},"duration_seconds":{"enum":[4,6,8,10]}},"allOf":[{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"text"}}},{"allOf":[{"not":{"required":["mode"]}},{"not":{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"anyOf":[{"required":["references"],"properties":{"references":{"minItems":1}}},{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]}]}}]}]},"then":{"properties":{"duration_seconds":{"enum":[4,6,8,10]}}}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"frames"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["start","end"]}}}}}}]}]}]},"then":{"properties":{"duration_seconds":{"enum":[4,6,8,10]}}}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"ingredients"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["character","environment","asset","style"]}}}}}}]}]}]},"then":{"properties":{"duration_seconds":{"enum":[4,6,8,10]}}}}]}},{"if":{"required":["operation"],"properties":{"operation":{"const":"extend"}}},"then":{"required":["source_asset"],"properties":{"model":{"enum":["Veo 3.1 - Lite [Lower Priority]"]},"resolution":{"enum":["720p"]},"duration_seconds":{"enum":[8]},"outputs":{"enum":[1]}}}},{"if":{"required":["operation"],"properties":{"operation":{"const":"edit_scene"}}},"then":{"required":["source_asset"],"properties":{"model":{"enum":["Omni 1.1 Flash"]},"resolution":{"enum":["360p","720p"]},"duration_seconds":{"enum":[4,6,8]},"outputs":{"enum":[1]}}}},{"if":{"properties":{"operation":{"const":"generate"}}},"then":{"not":{"required":["source_asset"]}}},{"if":{"required":["operation"],"properties":{"operation":{"const":"extend"}}},"then":{"properties":{"source_asset":{"properties":{"kind":{"const":"clip"},"lineage":{"const":"veo"}}}}}},{"if":{"required":["voices"],"properties":{"voices":{"contains":{"type":"object","required":["flow_voice_id"],"not":{"required":["binding"],"properties":{"binding":{"const":"character"}}}}}}},"then":{"required":["model","mode"],"properties":{"model":{"enum":["Omni 1.1 Flash"]},"mode":{"enum":["ingredients"]},"operation":{"enum":["generate"]}}}},{"not":{"required":["first_frame","firstFrame"]}},{"not":{"required":["first_frame","firstframe"]}},{"not":{"required":["firstFrame","firstframe"]}},{"not":{"required":["last_frame","lastFrame"]}},{"not":{"required":["last_frame","lastframe"]}},{"not":{"required":["lastFrame","lastframe"]}},{"not":{"required":["characters","character_images"]}},{"not":{"required":["characters","characterImages"]}},{"not":{"required":["character_images","characterImages"]}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"frames"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["start","end"]}}}}}}]}]}]},"then":{"allOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["references"],"properties":{"references":{"contains":{"anyOf":[{"type":"object","required":["role"],"properties":{"role":{"enum":["start"]}}},{"anyOf":[{"type":"string"},{"type":"object","required":["upload_id"],"not":{"required":["role"]}}]}]}}}}]},{"properties":{"references":{"maxItems":2,"items":{"if":{"type":"object","required":["role"]},"then":{"properties":{"role":{"enum":["start","end"]}}}},"allOf":[{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["start"]}}},"minContains":0,"maxContains":1},{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["end"]}}},"minContains":0,"maxContains":1}]},"ingredients":{"maxItems":0},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}}},{"if":{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},"then":{"properties":{"references":{"maxItems":1}}}},{"if":{"allOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]}]},{"anyOf":[{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]}]},"then":{"properties":{"references":{"maxItems":0}}}},{"if":{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]}]},"then":{"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["start"]}}},"minContains":0,"maxContains":0}}}},{"if":{"anyOf":[{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},"then":{"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["end"]}}},"minContains":0,"maxContains":0}}}}]}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"ingredients"}}},{"allOf":[{"not":{"required":["mode"]}},{"anyOf":[{"anyOf":[{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]},{"required":["references"],"properties":{"references":{"contains":{"type":"object","required":["role"],"properties":{"role":{"enum":["character","environment","asset","style"]}}}}}}]}]}]},"then":{"allOf":[{"anyOf":[{"required":["references"],"properties":{"references":{"minItems":1}}},{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]},{"not":{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]}},{"properties":{"references":{"items":{"if":{"type":"object","required":["role"]},"then":{"properties":{"role":{"not":{"enum":["start","end"]}}}}}},"ingredients":{"items":{"if":{"type":"object","required":["role"]},"then":{"properties":{"role":{"not":{"enum":["start","end"]}}}}}}}},{"anyOf":[{"properties":{"references":{"maxItems":0},"ingredients":{"maxItems":0},"characters":{"maxItems":3},"character_images":{"maxItems":3},"characterImages":{"maxItems":3}}},{"properties":{"references":{"maxItems":0},"ingredients":{"maxItems":1},"characters":{"maxItems":2},"character_images":{"maxItems":2},"characterImages":{"maxItems":2}}},{"properties":{"references":{"maxItems":0},"ingredients":{"maxItems":2},"characters":{"maxItems":1},"character_images":{"maxItems":1},"characterImages":{"maxItems":1}}},{"properties":{"references":{"maxItems":0},"ingredients":{"maxItems":3},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}}},{"properties":{"references":{"maxItems":1},"ingredients":{"maxItems":0},"characters":{"maxItems":2},"character_images":{"maxItems":2},"characterImages":{"maxItems":2}}},{"properties":{"references":{"maxItems":1},"ingredients":{"maxItems":1},"characters":{"maxItems":1},"character_images":{"maxItems":1},"characterImages":{"maxItems":1}}},{"properties":{"references":{"maxItems":1},"ingredients":{"maxItems":2},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}}},{"properties":{"references":{"maxItems":2},"ingredients":{"maxItems":0},"characters":{"maxItems":1},"character_images":{"maxItems":1},"characterImages":{"maxItems":1}}},{"properties":{"references":{"maxItems":2},"ingredients":{"maxItems":1},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}}},{"properties":{"references":{"maxItems":3},"ingredients":{"maxItems":0},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}}}]}]}},{"if":{"anyOf":[{"required":["mode"],"properties":{"mode":{"const":"text"}}},{"allOf":[{"not":{"required":["mode"]}},{"not":{"anyOf":[{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]},{"anyOf":[{"required":["references"],"properties":{"references":{"minItems":1}}},{"required":["ingredients"],"properties":{"ingredients":{"minItems":1}}},{"required":["characters"],"properties":{"characters":{"minItems":1}}},{"required":["character_images"],"properties":{"character_images":{"minItems":1}}},{"required":["characterImages"],"properties":{"characterImages":{"minItems":1}}}]}]}}]}]},"then":{"properties":{"references":{"maxItems":0},"ingredients":{"maxItems":0},"characters":{"maxItems":0},"character_images":{"maxItems":0},"characterImages":{"maxItems":0}},"not":{"anyOf":[{"required":["first_frame"]},{"required":["firstFrame"]},{"required":["firstframe"]},{"required":["last_frame"]},{"required":["lastFrame"]},{"required":["lastframe"]}]}}}],"x-accepted-aliases":{"first_frame":["firstFrame","firstframe"],"last_frame":["lastFrame","lastframe"],"characters":["character_images","characterImages"]},"x-reference-role-validation":"Opaque upload roles and ownership are resolved from the authenticated account catalog before canonical compilation."},"CreativeReference":{"type":"object","required":["role","approved"],"anyOf":[{"required":["path"]},{"required":["flow_asset_id"]}],"additionalProperties":false,"properties":{"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"role":{"enum":["environment","character","asset","style","start","end"]},"approved":{"const":true,"description":"Explicit approval of this exact reference; file hash is checked by the compiler and again before upload."},"flow_asset_id":{"type":"string"},"flow_character_id":{"type":"string"},"display_name":{"type":"string"},"slot":{"enum":["start","end"]}},"allOf":[{"if":{"required":["slot"],"properties":{"slot":{"const":"start"}}},"then":{"properties":{"role":{"const":"start"}}}},{"if":{"required":["slot"],"properties":{"slot":{"const":"end"}}},"then":{"properties":{"role":{"const":"end"}}}}]},"SourceAsset":{"type":"object","additionalProperties":false,"required":["flow_asset_id","kind","lineage","expected_duration_seconds"],"properties":{"flow_asset_id":{"type":"string","format":"uuid"},"kind":{"enum":["clip","scene","flow_scene"]},"lineage":{"enum":["veo","uploaded","omni"]},"expected_duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":36000},"aspect":{"enum":["16:9","9:16"]},"media_id":{"type":"string","format":"uuid"}}},"Cue":{"type":"object","required":["speaker","text","language","delivery","start_seconds","end_seconds"],"additionalProperties":false,"properties":{"speaker":{"type":"string","minLength":1},"text":{"type":"string","minLength":1},"language":{"type":"string","minLength":1},"delivery":{"type":"string","minLength":1},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","minimum":0}}},"ReferenceRegistration":{"type":"object","required":["id","path"],"additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^ref-[a-z0-9][a-z0-9_-]{0,94}$"},"path":{"type":"string","description":"Absolute path inside the Aurora package or a path relative to its root, never the process cwd. Registration stores the canonical absolute path; parent traversal in relative paths and symbolic links are rejected."},"type":{"type":"string"},"role":{"enum":["environment","character","asset","style","start","end"]},"description":{"type":"string","maxLength":1000},"approved":{"type":"boolean"},"sha256":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"flow_asset_id":{"type":"string"},"flow_character_id":{"type":"string"},"display_name":{"type":"string"},"slot":{"type":"string"}}},"Reference":{"type":"object","required":["id","path","role","approved","sha256"],"properties":{"id":{"type":"string"},"path":{"type":"string"},"role":{"type":"string"},"approved":{"type":"boolean"},"sha256":{"type":"string"},"created_at":{"type":"number"}}},"CompiledRequest":{"type":"object","required":["spec","creative","profile","warnings","request_fingerprint"],"properties":{"spec":{"type":"object"},"creative":{"type":"object"},"profile":{"type":"object"},"warnings":{"type":"array","items":{"type":"string"}},"request_fingerprint":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"Job":{"type":"object","required":["id","state","spec"],"properties":{"id":{"type":"string"},"state":{"type":"string"},"created_at":{"type":"number"},"updated_at":{"type":"number"},"spec":{"type":"object"},"flow_balance_verification":{"type":"object","description":"Server-observed Flow balance safety, separate from AUROFLOW usage credits. Private amounts and account identity are omitted. A blocked result requires operator review; recovery never resets the durable guard.","properties":{"status":{"type":"string","enum":["pending","verified","blocked"]},"code":{"type":"string"},"checks":{"type":"array","items":{"type":"object","properties":{"phase":{"type":"string"},"status":{"type":"string"},"observed_at":{"type":"number"}}}}}},"creative":{"type":"object"},"profile":{"type":"object"},"warnings":{"type":"array","items":{"type":"string"}},"request_fingerprint":{"type":"string"},"error":{"oneOf":[{"type":"string"},{"type":"object"}],"description":"Legacy error shape with recognizable private text redacted. Use failure for structured recovery guidance."},"delivery":{"type":"object","description":"A durable request is ready only after its MP4 is verified. Uncertain submissions are recovered by collection, never submitted a second time. Provider failure or exhausted recovery is reported explicitly; an MP4 cannot be guaranteed if Flow never produces one.","required":["status"],"properties":{"status":{"type":"string","enum":["processing","recovering","ready","action_required","failed"]},"recovery_attempts":{"type":"integer","minimum":0},"next_attempt_at":{"type":"number","description":"Unix timestamp for the next safe collect-only attempt, when one is scheduled."},"available":{"type":"boolean","description":"All recorded outputs currently match existing files."},"verification":{"enum":["hash_verified","file_only"]},"code":{"type":"string"},"action_required":{"type":"string"}}},"result":{"type":"object","properties":{"asset_id":{"type":"string"},"sha256":{"type":"string"},"bytes":{"type":"integer"},"technical_output":{"type":"object","description":"Optional FFprobe-derived media facts, present for a completed job when available.","properties":{"duration_seconds":{"type":"number"},"width":{"type":"integer"},"height":{"type":"integer"},"video_codec":{"type":"string"},"audio_codec":{"type":["string","null"]},"audio_stream_count":{"type":"integer","minimum":0},"video_start_seconds":{"type":"number"}}},"delivery_kind":{"enum":["native","silent_derivative"]},"human_audiovisual_approval":{"const":false}}},"video_url":{"type":"string"},"failure":{"$ref":"#/components/schemas/JobFailure"},"variants":{"type":"array","maxItems":4,"items":{"$ref":"#/components/schemas/JobVariant"}},"video_available":{"type":"boolean","description":"At least one existing, receipt-checked file is currently available; completed alone is insufficient."},"silent_finalization":{"$ref":"#/components/schemas/AutomaticSilentFinalization"}}},"CreativeRequest_CreativeReference":{"type":"object","required":["role","approved"],"anyOf":[{"required":["path"]},{"required":["flow_asset_id"]}],"additionalProperties":false,"properties":{"path":{"type":"string"},"sha256":{"type":"string","pattern":"^[A-Fa-f0-9]{64}$"},"role":{"enum":["environment","character","asset","style","start","end"]},"approved":{"const":true,"description":"Explicit approval of this exact reference; file hash is checked by the compiler and again before upload."},"flow_asset_id":{"type":"string"},"flow_character_id":{"type":"string"},"display_name":{"type":"string"},"slot":{"enum":["start","end"]}},"allOf":[{"if":{"required":["slot"],"properties":{"slot":{"const":"start"}}},"then":{"properties":{"role":{"const":"start"}}}},{"if":{"required":["slot"],"properties":{"slot":{"const":"end"}}},"then":{"properties":{"role":{"const":"end"}}}}]},"CreativeRequest_SourceAsset":{"type":"object","additionalProperties":false,"required":["flow_asset_id","kind","lineage","expected_duration_seconds"],"properties":{"flow_asset_id":{"type":"string","format":"uuid"},"kind":{"enum":["clip","scene","flow_scene"]},"lineage":{"enum":["veo","uploaded","omni"]},"expected_duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":36000},"aspect":{"enum":["16:9","9:16"]},"media_id":{"type":"string","format":"uuid"}}},"CreativeRequest_Cue":{"type":"object","required":["speaker","text","language","delivery","start_seconds","end_seconds"],"additionalProperties":false,"properties":{"speaker":{"type":"string","minLength":1},"text":{"type":"string","minLength":1},"language":{"type":"string","minLength":1},"delivery":{"type":"string","minLength":1},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","minimum":0}}},"CreativeRequest_NarrationCue":{"type":"object","required":["text","language","delivery","start_seconds","end_seconds"],"additionalProperties":false,"properties":{"speaker":{"type":"string","minLength":1},"text":{"type":"string","minLength":1},"language":{"type":"string","minLength":1},"delivery":{"type":"string","minLength":1},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","minimum":0}}},"CreativeRequest_VisualReference":{"type":"object","additionalProperties":false,"required":["role","approved"],"properties":{"path":{"type":"string","minLength":1,"maxLength":4096,"description":"Absolute path inside the Aurora package or a path relative to its root, never the process cwd. Canonical output is absolute; parent traversal in relative paths and symbolic links are rejected."},"sha256":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"role":{"enum":["environment","character","asset","style","start","end"]},"approved":{"const":true},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256},"display_name":{"type":"string","minLength":1,"maxLength":256},"slot":{"enum":["start","end"]},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"anyOf":[{"required":["path"]},{"required":["flow_asset_id"]},{"required":["flow_character_id"]}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"],"properties":{"slot":{"const":"start"}}},"then":{"properties":{"role":{"const":"start"}}}},{"if":{"required":["slot"],"properties":{"slot":{"const":"end"}}},"then":{"properties":{"role":{"const":"end"}}}}]},"CreativeRequest_SequenceContext":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"id":{"type":"string"},"title":{"type":"string"},"dramatic_goal":{"type":"string"},"story_beat":{"type":"string"},"identity_continuity":{"type":"string"},"object_continuity":{"type":"string"},"visual_continuity":{"type":"string"},"spatial_continuity":{"type":"string"},"temporal_continuity":{"type":"string"},"performance_arc":{"type":"string"},"sound_continuity":{"type":"string"},"screen_direction":{"type":"string"},"editing_rhythm":{"type":"string"},"cut_motivation":{"type":"string"},"transition_in":{"type":"string"},"transition_out":{"type":"string"},"target_duration_seconds":{"type":"number","exclusiveMinimum":0},"shot_index":{"type":"integer","minimum":1},"shot_count":{"type":"integer","minimum":1,"maximum":100},"common_reference_ids":{"type":"array","items":{"type":"string"}},"allowed_overrides":{"type":"array","items":{"type":"string"}},"audio_bed":{"type":"object","additionalProperties":false,"required":["id","description"],"properties":{"id":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":1000},"perspective":{"type":"string","minLength":1,"maxLength":500},"target_lufs":{"type":"number","minimum":-30,"maximum":-5,"default":-16},"entry_handle_seconds":{"type":"number","minimum":0,"default":0.25},"exit_handle_seconds":{"type":"number","minimum":0,"default":0.25},"must_continue":{"type":"boolean","default":true}}}}},"CreativeRequest_Shot":{"type":"object","minProperties":1,"additionalProperties":{"type":"string"},"properties":{"id":{"type":"string"},"title":{"type":"string"},"subject":{"type":"string"},"action":{"type":"string"},"context":{"type":"string"},"style":{"type":"string"},"composition":{"type":"string"},"shot_size":{"type":"string"},"angle":{"type":"string"},"camera":{"type":"string"},"lens":{"type":"string"},"depth_of_field":{"type":"string"},"camera_movement":{"type":"string"},"lighting":{"type":"string"},"color_palette":{"type":"string"},"mood":{"type":"string"},"start_state":{"type":"string"},"end_state":{"type":"string"},"screen_direction":{"type":"string"},"eyeline":{"type":"string"},"geography":{"type":"string"},"wardrobe":{"type":"string"},"props":{"type":"string"},"damage_state":{"type":"string"},"performance":{"type":"string"},"continuity":{"type":"string"},"allowed_changes":{"type":"string"},"instructions":{"type":"string"},"render_prompt":{"type":"string"},"time_of_day":{"type":"string"},"weather":{"type":"string"},"negative_constraints":{"type":"string"}}},"CreativeRequest_Beat":{"type":"object","additionalProperties":false,"required":["start_seconds","end_seconds","action"],"properties":{"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"action":{"type":"string"},"camera":{"type":"string"},"audio":{"type":"string"}}},"CreativeRequest_SpeechCue":{"type":"object","additionalProperties":false,"required":["text","delivery","start_seconds","end_seconds"],"properties":{"speaker":{"type":"string"},"text":{"type":"string"},"language":{"type":"string","default":"es-ES"},"accent":{"type":"string"},"pronunciation":{"type":"string"},"delivery":{"type":"string"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","minimum":0}}},"CreativeRequest_Voice":{"type":"object","additionalProperties":false,"required":["speaker","description"],"properties":{"speaker":{"type":"string"},"description":{"type":"string"},"language":{"type":"string"},"accent":{"type":"string"},"pronunciation":{"type":"string"},"flow_voice_id":{"type":"string","format":"uuid","minLength":1,"maxLength":256},"display_name":{"type":"string"},"approved":{"type":"boolean"},"binding":{"const":"character","description":"Use the saved voice already bundled inside one native Character; do not attach a second audio chip."},"character_id":{"type":"string","format":"uuid"}},"allOf":[{"if":{"required":["flow_voice_id"]},"then":{"required":["approved"],"properties":{"approved":{"const":true}}}},{"if":{"anyOf":[{"required":["binding"]},{"required":["character_id"]}]},"then":{"required":["binding","character_id","flow_voice_id","approved"],"properties":{"binding":{"const":"character"},"approved":{"const":true}}}}]},"CreativeRequest_AudioCue":{"type":"object","additionalProperties":false,"required":["kind","description","start_seconds","end_seconds"],"properties":{"kind":{"enum":["ambient","sfx","music","silence"]},"description":{"type":"string"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","minimum":0},"continuity_id":{"type":"string"},"must_continue":{"type":"boolean"}}},"CreativeRequest_AgentProfile":{"type":"object","additionalProperties":false,"properties":{"mode":{"enum":["disabled","experimental"]},"instructions":{"type":"string"},"confirm_before_generate":{"const":true}}},"SequenceRequest":{"title":"Flow sequence request","type":"object","additionalProperties":false,"required":["id","title","aspect","clips"],"properties":{"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"title":{"type":"string","minLength":1},"aspect":{"enum":["16:9","9:16"]},"clips":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["job_id","variant"],"properties":{"job_id":{"type":"string","pattern":"^api-"},"variant":{"type":"integer","minimum":1,"maximum":4,"description":"Variant ordinal as a JSON integer literal. Boolean and floating-point literals are rejected by the API even when numerically equal to an integer."},"trim_in":{"type":"number","minimum":0},"trim_out":{"type":"number","exclusiveMinimum":0},"cut":{"type":"string"},"mute_native":{"type":"boolean"},"framing":{"type":"object","additionalProperties":false,"required":["crop"],"properties":{"crop":{"type":"object","additionalProperties":false,"required":["x","y","width","height"],"properties":{"x":{"type":"integer","minimum":0},"y":{"type":"integer","minimum":0},"width":{"type":"integer","minimum":16},"height":{"type":"integer","minimum":16}}}},"description":"Pixel crop inside this owned source. With finishing, the server fits it to720p landscape/portrait without stretching."},"tail_hold_seconds":{"type":"number","minimum":0,"maximum":3,"description":"Optional extension after this source trim: clone only its final picture and pad silent audio for zero to three seconds. Native speech stays at its original speed and sync. Requires local finishing, native_scene audio and explicit integer cost_max=0. Counts toward final duration and the 600s finishing limit; declared speech cannot overlap the held silence. Cannot combine with hold_last_frame_after_seconds."}}}},"rhythm":{"type":"string"},"cut_motivation":{"type":"string"},"speech_ranges":{"type":"array","items":{"type":"object","required":["start_seconds","end_seconds"],"properties":{"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0}}}},"audio":{"type":"object","properties":{"mode":{"enum":["native_scene","auto_hybrid","hybrid_post"]},"target_lufs":{"type":"number","minimum":-30,"maximum":-5},"max_boundary_jump_db":{"type":"number","minimum":0},"max_gap_ms":{"type":"integer","minimum":0},"bed":{"type":"object","additionalProperties":false,"required":["approved"],"oneOf":[{"required":["path"],"not":{"required":["source_variant"]}},{"required":["source_variant"],"not":{"required":["path"]}}],"properties":{"approved":{"type":"boolean","const":true},"path":{"type":"string","minLength":1,"maxLength":4096,"description":"Absolute regular file inside the project. Operator-only; public and standard users must select an owned source_variant."},"source_variant":{"type":"object","additionalProperties":false,"required":["job_id","variant"],"properties":{"job_id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4,"description":"Variant ordinal as a JSON integer literal. Boolean and floating-point literals are rejected by the API even when numerically equal to an integer."}}},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"SHA-256 of the explicitly approved source bytes. If supplied, it must match the collected variant or local file."}}}}},"notes":{"type":"string","maxLength":5000},"cost_max":{"type":"integer","enum":[0],"description":"Finishing requires explicit integer zero. No provider generation or AURO credit debit."},"finishing":{"type":"object","additionalProperties":false,"description":"Server FFmpeg finishing; requires assembly=local, audio.mode=native_scene and cost_max=0. No browser or client processing. At most50clips/600s.","properties":{"audio_normalize":{"type":"boolean","default":true},"target_lufs":{"type":"number","minimum":-30,"maximum":-10,"default":-16},"true_peak_db":{"type":"number","minimum":-6,"maximum":-1,"default":-2},"edge_fade_ms":{"type":"integer","minimum":0,"maximum":100,"default":25},"seam_smoothing_ms":{"type":"integer","minimum":0,"maximum":500,"default":0,"description":"Attenuates unvoiced post-cut ambience only when declared speech_ranges do not overlap. Without speech ranges it is skipped and receipted."},"video_fade_ms":{"type":"integer","minimum":0,"maximum":1000,"default":120}}},"assembly":{"type":"string","enum":["local","flow_scene"],"default":"flow_scene","description":"local assembles owned completed variants on the server; finishing requires local. flow_scene depends on its separately declared adapter capability."}},"allOf":[{"if":{"properties":{"clips":{"contains":{"required":["tail_hold_seconds"]}}},"required":["clips"]},"then":{"required":["finishing","assembly","cost_max"],"properties":{"assembly":{"const":"local"},"cost_max":{"type":"integer","const":0},"audio":{"properties":{"mode":{"const":"native_scene"}}},"finishing":{"not":{"required":["hold_last_frame_after_seconds"]}}}}},{"if":{"required":["finishing"]},"then":{"required":["assembly","cost_max"],"properties":{"assembly":{"const":"local"},"cost_max":{"type":"integer","const":0},"audio":{"properties":{"mode":{"const":"native_scene"}}}}}}],"description":" Local finishing may reuse a source of another aspect only with an explicit valid crop matching the target ratio exactly and integer cost_max 0. Account/project provenance remains mandatory and each clip retains its source aspect. Native flow_scene assembly still rejects mixed aspects."},"SequenceFailure":{"type":"object","required":["code","stage","recoverable","uncertain","action_required","automatic_retry"],"properties":{"code":{"type":"string"},"stage":{"enum":["assembly","append","reorder","trim","export","validation"]},"recoverable":{"type":"boolean"},"uncertain":{"type":"boolean"},"dispatched":{"type":"boolean","description":"Optional evidence from the pending native receipt for this exact sequence ID and compiled fingerprint. Absence means unknown, never false. A true value forbids replay even after download completion."},"action_required":{"type":"string"},"automatic_retry":{"const":false}}},"HttpErrorDetail":{"type":"object","required":["code","message","stage","recoverable","uncertain","action_required","automatic_retry"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"stage":{"type":"string","enum":["request_validation","authentication","authorization","admission","idempotency","connection","preflight","source_download","source_prepare","collect_download","media","upstream","service"]},"recoverable":{"type":"boolean","description":"Recovery may proceed after the required action. This does not authorize retrying a render."},"uncertain":{"type":"boolean","description":"A resource write may have been accepted. Inspect resource_url before taking another action."},"action_required":{"type":"string"},"automatic_retry":{"const":false},"resource_url":{"type":"string","description":"Authenticated GET of the existing job or sequence; no private host path."}}},"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"$ref":"#/components/schemas/HttpErrorDetail"}}},"JobFailure":{"type":"object","description":"Projection of durable failure facts; recoverable permits collection of the same job, never a new generation. recovery_status records durable scheduling intent and does not prove a live worker.","required":["code","stage","recoverable","uncertain","action_required","automatic_retry","recovery_status"],"properties":{"code":{"type":"string"},"stage":{"enum":["queue","preflight","source_download","source_prepare","collect_download","submit","collect","recovery","media","flow_balance","provider","unknown"]},"recoverable":{"type":"boolean"},"uncertain":{"type":"boolean"},"action_required":{"type":"string"},"automatic_retry":{"const":false},"recovery_status":{"enum":["none","scheduled","waiting","collecting","operator_required"]},"resource_url":{"type":"string"},"first_failure":{"type":"object","required":["code","stage"],"properties":{"code":{"type":"string"},"stage":{"enum":["queue","preflight","source_download","source_prepare","collect_download","submit","collect","recovery","media","flow_balance","provider","unknown"]}}},"last_failure":{"type":"object","required":["code","stage"],"properties":{"code":{"type":"string"},"stage":{"enum":["queue","preflight","source_download","source_prepare","collect_download","submit","collect","recovery","media","flow_balance","provider","unknown"]}}}}},"NativeVideoSource":{"type":"object","description":"Observed immutable native source receipt. Native availability is separate from fulfillment of the approved audio request. No private artifact paths are exposed.","required":["ordinal","asset_id","sha256","bytes","available"],"properties":{"ordinal":{"type":"integer","minimum":1,"maximum":4},"asset_id":{"type":"string"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":1},"available":{"type":"boolean"},"video_url":{"type":"string","pattern":"^/v1/jobs/api-[a-z0-9][a-z0-9_-]{0,94}/variants/[1-4]/native-video$"},"requested_audio":{"const":"silent"},"audio_stream_count":{"type":"integer","minimum":0},"audio_codec":{"type":["string","null"]},"audio_contract_matches":{"type":"boolean"}}},"DeliveryProvenance":{"type":"object","description":"Validated provenance of a separately hashed final delivery. Removal of an existing audio track is the only supported derivation; it grants no human audiovisual approval.","required":["operation","source_sha256","receipt_sha256","human_audiovisual_approval"],"additionalProperties":false,"properties":{"operation":{"const":"remove_audio"},"source_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"receipt_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"human_audiovisual_approval":{"const":false}}},"JobVariant":{"type":"object","description":"Effective delivered variant. ordinal and asset_id retain the observed native source identity; sha256/bytes describe the effective delivered file. native_source preserves its original receipt when a silent delivery is evaluated.","required":["ordinal"],"properties":{"ordinal":{"type":"integer","minimum":1,"maximum":4},"asset_id":{"type":"string"},"thumbnail_id":{"type":"string"},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"bytes":{"type":"integer","minimum":1},"duration_seconds":{"type":"number","exclusiveMinimum":0},"video_url":{"type":"string"},"available":{"type":"boolean"},"verification":{"type":"string"},"code":{"type":"string"},"delivery_kind":{"enum":["native","silent_derivative"]},"native_source":{"$ref":"#/components/schemas/NativeVideoSource"},"delivery_provenance":{"$ref":"#/components/schemas/DeliveryProvenance"}}},"SilentDeliveryRegistrationRequest":{"type":"object","additionalProperties":false,"required":["expected_record_sha256","request_fingerprint","owner_key_sha256","native_sha256","approval_sha256","receipt_sha256","receipt_bytes"],"properties":{"expected_record_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"request_fingerprint":{"type":"string","pattern":"^[a-f0-9]{64}$"},"owner_key_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"native_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"approval_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"receipt_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"receipt_bytes":{"type":"integer","minimum":1,"maximum":2097152}}},"AutomaticSilentFinalization":{"type":"object","additionalProperties":false,"description":"Local finalization of the accepted Silent request. Native files stay immutable. Available partial variants are retained; the stage does not complete missing generation outputs or assert human audiovisual approval. Unknown derivation or registration is reconciled without repeating effects.","required":["schema","status","automatic_retry","flow_actions","human_audiovisual_approval"],"properties":{"schema":{"const":"auroflow/automatic-silent-delivery/v1"},"status":{"enum":["ready","partial","action_required","in_progress"]},"requested_outputs":{"type":"integer","minimum":1,"maximum":4},"available_outputs":{"type":"integer","minimum":0,"maximum":4},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}$"},"cause_code":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}$"},"action_required":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}$"},"automatic_retry":{"const":false},"flow_actions":{"const":0},"state_persisted":{"const":false},"human_audiovisual_approval":{"const":false},"variants":{"type":"object","maxProperties":4,"additionalProperties":false,"patternProperties":{"^[1-4]$":{"type":"object","additionalProperties":false,"required":["status"],"properties":{"status":{"enum":["ready","pending","action_required"]},"delivery_kind":{"enum":["native","silent_derivative"]},"native_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"effective_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"code":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}$"},"action_required":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}$"},"automatic_retry":{"const":false}}}}}}},"NativeVoiceCreate":{"type":"object","additionalProperties":false,"required":["id","display_name","cost_max","approved","base_voice","performance","sample_dialogue"],"properties":{"id":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"},"display_name":{"type":"string","minLength":1,"maxLength":60},"cost_max":{"type":"integer","enum":[0]},"approved":{"type":"boolean","enum":[true]},"base_voice":{"type":"string","enum":["Achernar","Achird","Algenib","Algieba","Alnilam","Aoede","Autonoe","Callirrhoe","Charon","Despina","Enceladus","Erinome","Fenrir","Gacrux"]},"performance":{"type":"string","minLength":1,"maxLength":1500},"sample_dialogue":{"type":"string","minLength":1,"maxLength":120}}},"NativeCharacterCreate":{"type":"object","additionalProperties":false,"required":["id","display_name","cost_max","approved","image_upload_id","voice_id"],"properties":{"id":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"},"display_name":{"type":"string","minLength":1,"maxLength":60},"cost_max":{"type":"integer","enum":[0]},"approved":{"type":"boolean","enum":[true]},"image_upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"voice_id":{"type":"string","format":"uuid"},"info":{"type":"string","maxLength":1500},"create_casting":{"type":"boolean","default":true,"description":"New public Characters include one automatic vertical introduction with their saved voice at zero additional cost. Explicit false saves only the Character. Existing operation replays retain their original choice and fingerprint."}}},"NativeImageCreate":{"type":"object","additionalProperties":false,"required":["id","display_name","cost_max","approved","prompt"],"properties":{"id":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"},"display_name":{"type":"string","minLength":1,"maxLength":60},"cost_max":{"type":"integer","enum":[0]},"approved":{"type":"boolean","enum":[true]},"prompt":{"type":"string","minLength":1,"maxLength":6000},"engine":{"type":"string","enum":["flow-nano-banana","codex-native-image"],"default":"flow-nano-banana","description":"Optional image engine. Omission or explicit flow-nano-banana preserves the existing Flow/Nano Banana request fingerprint and requires the assigned project, habitual Chrome/MCP and fresh visible Google cost exactly zero. codex-native-image uses only a separately verified and enabled Codex native-image adapter with the existing ChatGPT subscription ordinary quota, no API key, no paid API, no Chrome or Flow generation, and no additional credit spend. Readiness metadata does not authorize execution or replace per-engine runtime checks; an unavailable engine fails closed without fallback."},"reference_upload_ids":{"type":"array","minItems":1,"maxItems":3,"uniqueItems":true,"items":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"description":"Optional 1–3 observed uploads owned by this account, used as real native image inputs. Requires engine=codex-native-image; omit for text-only generation. No paths, URLs or foreign uploads."}},"allOf":[{"if":{"required":["reference_upload_ids"]},"then":{"required":["engine"],"properties":{"engine":{"const":"codex-native-image"}}}}]},"NativeReferenceFrameCreate":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^lib-[a-z0-9][a-z0-9_-]{0,78}$"},"display_name":{"type":"string","minLength":1,"maxLength":60},"job_id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4},"source_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"frame_index":{"type":"integer","minimum":0},"approved":{"type":"boolean","enum":[true]},"cost_max":{"type":"integer","enum":[0]}},"required":["id","display_name","job_id","variant","source_sha256","frame_index","approved","cost_max"],"description":"Pure server extraction from one completed owned source variant verified by SHA-256. Exact frame number, private reference upload, stable lib ID, no inference, Flow, Chrome or provider/Auro credit spend. Repeated requests return the same operation. Source remains unchanged."},"PublicUpload":{"type":"object","additionalProperties":false,"required":["id","role","display_name","mime_type","size_bytes","sha256","width","height","created_at"],"properties":{"id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"role":{"enum":["character","environment","asset","style","start","end"]},"display_name":{"type":"string"},"mime_type":{"enum":["image/jpeg","image/png","image/webp"]},"size_bytes":{"type":"integer","minimum":1},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"width":{"type":"integer","minimum":64,"maximum":8192},"height":{"type":"integer","minimum":64,"maximum":8192},"created_at":{"type":"string","format":"date-time"}}},"PublicReferenceInput":{"oneOf":[{"type":"string","pattern":"^img_[a-f0-9]{32}$","description":"Opaque ID returned by POST /v1/uploads."},{"type":"object","additionalProperties":false,"properties":{"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"flow_asset_id":{"type":"string","minLength":1,"maxLength":256},"flow_character_id":{"type":"string","minLength":1,"maxLength":256,"description":"Native Character requires an assigned private catalog and its explicit character-bound saved voice; live identity and zero-cost verification apply."},"role":{"enum":["character","environment","asset","style","start","end"]},"approved":{"const":true},"display_name":{"type":"string"},"slot":{"enum":["start","end"]},"priority":{"type":"integer","minimum":0,"maximum":100},"version":{"type":"string","minLength":1,"maxLength":256}},"oneOf":[{"required":["upload_id"],"not":{"anyOf":[{"required":["flow_asset_id"]},{"required":["flow_character_id"]}]}},{"required":["flow_asset_id","role","approved"],"not":{"required":["upload_id"]}},{"required":["flow_character_id","role","approved"],"properties":{"role":{"const":"character"}},"not":{"anyOf":[{"required":["upload_id"]},{"required":["flow_asset_id"]}]}}],"allOf":[{"if":{"required":["flow_character_id"]},"then":{"properties":{"role":{"const":"character"}}}},{"if":{"required":["slot"]},"then":{"required":["role"],"properties":{"role":{"enum":["start","end"]}}}},{"if":{"required":["role"],"properties":{"role":{"const":"start"}}},"then":{"properties":{"slot":{"const":"start"}}}},{"if":{"required":["role"],"properties":{"role":{"const":"end"}}},"then":{"properties":{"slot":{"const":"end"}}}}]}]},"MotionRequest":{"oneOf":[{"type":"object","additionalProperties":false,"required":["id","cost_max","aspect","duration_seconds","layers"],"properties":{"id":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"},"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"}}},{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400}}},{"type":"object","additionalProperties":false,"required":["type","title"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180}}},{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}}}}]}},"engine":{"const":"hyperframes"}}},{"type":"object","additionalProperties":false,"required":["id","cost_max","aspect","duration_seconds","layers","engine"],"properties":{"id":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"},"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}},{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}},{"type":"object","additionalProperties":false,"required":["type","title"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}},{"type":"object","additionalProperties":false,"required":["type","text"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}}]}},"engine":{"const":"remotion"}}}],"properties":{"id":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"}}},"FinishingRequest":{"type":"object","additionalProperties":false,"required":["track"],"properties":{"track":{"type":"object","additionalProperties":false,"required":["id","composition"],"properties":{"id":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"},"name":{"type":"string","minLength":1,"maxLength":120},"composition":{"oneOf":[{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"hyperframes"}}},{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers","engine"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"remotion"}}}]}}},"music_requested":{"type":"boolean","default":false}}},"GraphicsCreate":{"type":"object","additionalProperties":false,"required":["id","composition"],"properties":{"id":{"type":"string","pattern":"^gfx-[a-z0-9][a-z0-9_-]{0,63}$"},"name":{"type":"string","minLength":1,"maxLength":120},"composition":{"oneOf":[{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"hyperframes"}}},{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers","engine"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"remotion"}}}]}}},"GraphicsUpdate":{"type":"object","additionalProperties":false,"required":["expected_revision","patches"],"properties":{"expected_revision":{"type":"integer","minimum":1,"maximum":100},"name":{"type":"string","minLength":1,"maxLength":120},"patches":{"type":"array","maxItems":32,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["op","layer_id","changes"],"properties":{"op":{"const":"set"},"layer_id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"},"changes":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"text":{"type":"string","minLength":1,"maxLength":400},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}}}}}},{"type":"object","additionalProperties":false,"required":["op","layer_id"],"properties":{"op":{"const":"remove"},"layer_id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["op","layer"],"properties":{"op":{"const":"add"},"layer":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]},"after":{"oneOf":[{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"},{"type":"null"}]}}},{"type":"object","additionalProperties":false,"required":["op","layer_id","after"],"properties":{"op":{"const":"move"},"layer_id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"},"after":{"oneOf":[{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"},{"type":"null"}]}}},{"type":"object","additionalProperties":false,"required":["op","audio"],"properties":{"op":{"const":"set_audio"},"audio":{"oneOf":[{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},{"type":"null"}]}}},{"type":"object","additionalProperties":false,"required":["op","audio_layer"],"properties":{"op":{"const":"add_audio_layer"},"audio_layer":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}},{"type":"object","additionalProperties":false,"required":["op","audio_layer_id","changes"],"properties":{"op":{"const":"set_audio_layer"},"audio_layer_id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"changes":{"type":"object","minProperties":1,"additionalProperties":false,"properties":{"role":{"enum":["music","narration","video"]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}},{"type":"object","additionalProperties":false,"required":["op","audio_layer_id"],"properties":{"op":{"const":"remove_audio_layer"},"audio_layer_id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}}}},"GraphicsPlan":{"type":"object","additionalProperties":false,"required":["revision"],"properties":{"revision":{"type":"integer","minimum":1,"maximum":100}}},"GraphicsRender":{"type":"object","additionalProperties":false,"required":["revision","motion_id","cost_max"],"properties":{"revision":{"type":"integer","minimum":1,"maximum":100},"motion_id":{"type":"string","pattern":"^motion-[a-z0-9][a-z0-9_-]{0,63}$"},"cost_max":{"type":"integer","enum":[0]}}},"GraphicsSuggest":{"type":"object","additionalProperties":false,"properties":{"brief":{"type":"string","maxLength":1500},"kind":{"enum":["ad","documentary","film","news","general"]},"aspect":{"enum":["9:16","16:9"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"has_logo":{"type":"boolean"},"has_verified_data":{"type":"boolean"},"has_speaker":{"type":"boolean"},"requested_texts":{"type":"array","maxItems":6,"items":{"type":"string","minLength":1,"maxLength":400}},"style":{"enum":["minimal","editorial","news","cinematic","product","explainer","data","social"]},"style_prompt":{"type":"string","maxLength":1500},"engine":{"type":"string","enum":["hyperframes","remotion"]},"platform":{"type":"string","enum":["generic","tiktok","instagram","youtube"]}}},"GraphicsReview":{"type":"object","additionalProperties":false,"required":["composition"],"properties":{"composition":{"oneOf":[{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"hyperframes"}}},{"type":"object","additionalProperties":false,"required":["cost_max","aspect","duration_seconds","layers","engine"],"properties":{"cost_max":{"type":"integer","enum":[0]},"aspect":{"enum":["16:9","9:16"]},"duration_seconds":{"type":"integer","minimum":1,"maximum":60},"fps":{"type":"integer","enum":[24]},"mode":{"enum":["standalone","overlay"]},"background":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}}]},"audio":{"oneOf":[{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"start_seconds":{"type":"number","minimum":0,"maximum":86400},"gain_db":{"type":"number","minimum":-12,"maximum":6}}},{"type":"object","additionalProperties":false,"required":["tracks"],"properties":{"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":60},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":60},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":30},"fade_out_seconds":{"type":"number","minimum":0,"maximum":30},"muted":{"type":"boolean"}}}}}}]},"layers":{"type":"array","minItems":0,"maxItems":12,"items":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type","upload_id","id"],"properties":{"type":{"const":"logo"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upload_id":{"type":"string","pattern":"^img_[a-f0-9]{32}$"},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"text"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","id"],"properties":{"type":{"const":"lower_third"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"subtitle":{"type":"string","maxLength":180},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","text","id"],"properties":{"type":{"const":"ticker"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","minLength":1,"maxLength":400},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}},{"type":"object","additionalProperties":false,"required":["type","title","labels","values","id"],"properties":{"type":{"const":"chart"},"start_seconds":{"type":"number","minimum":0},"end_seconds":{"type":"number","exclusiveMinimum":0},"x":{"type":"number","minimum":0,"maximum":1},"y":{"type":"number","minimum":0,"maximum":1},"width":{"type":"number","exclusiveMinimum":0,"maximum":1},"height":{"type":"number","exclusiveMinimum":0,"maximum":1},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"title":{"type":"string","minLength":1,"maxLength":120},"chart_type":{"enum":["bar","line","donut"]},"labels":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","minLength":1,"maxLength":40}},"values":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"number","minimum":-1000000000,"maximum":1000000000}},"animation":{"type":"object","additionalProperties":false,"required":["preset"],"properties":{"preset":{"enum":["fade","slide_up","slide_left","spring_pop","typewriter"]},"duration_seconds":{"type":"number","minimum":0.1,"maximum":3}}},"id":{"type":"string","pattern":"^layer-[a-z0-9][a-z0-9_-]{0,63}$"}}}]}},"engine":{"const":"remotion"}}}]},"platform":{"type":"string","enum":["generic","tiktok","instagram","youtube"]}}},"GraphicsTemplates":{"type":"object","additionalProperties":false,"properties":{"template_id":{"type":"string","enum":["news-brief","documentary-context","product-proof","social-hook","data-comparison","chapter-card","presenter-id","process-steps"]},"situation":{"type":"string","enum":["news","documentary","product","social","data","film","presenter","explainer"]},"engine":{"type":"string","enum":["hyperframes","remotion"]},"aspect":{"type":"string","enum":["9:16","16:9"]},"limit":{"type":"integer","minimum":1,"maximum":12,"default":6}}},"VideoPromptPreparation":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"type":"string","minLength":1,"maxLength":12000},"style":{"type":"string","minLength":1,"maxLength":2000},"cost_max":{"type":"integer","enum":[0],"default":0}}},"VidsVoiceRequest":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","pattern":"tts-[a-z0-9][a-z0-9_-]{0,63}$"},"voice_id":{"type":"string","pattern":"vids-[a-z][a-z0-9-]{0,39}$"},"text":{"type":"string","minLength":1,"maxLength":2400},"experimental_spanish_spain":{"type":"boolean","default":false},"approved":{"type":"boolean","description":"True only after the user authorized this synthesis."},"cost_max":{"type":"integer","enum":[0]}},"required":["id","voice_id","text","approved","cost_max"]},"NativeMediaRequest":{"type":"object","additionalProperties":false,"required":["id","provider","prompt","approved","cost_max"],"properties":{"id":{"type":"string","pattern":"nm-[a-z0-9][a-z0-9_-]{0,63}$"},"provider":{"enum":["flow_music","notebook","vids_video"]},"prompt":{"type":"string","minLength":1,"maxLength":5000},"source_text":{"type":"string","minLength":50,"maxLength":40000},"lyrics":{"type":"string","maxLength":3000},"options":{"type":"object","additionalProperties":false,"properties":{"instrumental":{"type":"boolean"},"format":{"enum":["overview","brief"]}},"description":"flow_music: instrumental boolean. notebook: format overview or brief. vids_video: empty."},"approved":{"type":"boolean"},"cost_max":{"type":"integer","enum":[0]}}},"VidsMusicRequest":{"type":"object","additionalProperties":false,"required":["id","prompt","duration_mode","instrumental","approved","cost_max"],"properties":{"id":{"type":"string","pattern":"mus-[a-z0-9][a-z0-9_-]{0,63}$"},"prompt":{"type":"string","minLength":1,"maxLength":2400},"duration_mode":{"enum":["clip","full_song"],"description":"Native mode only: clip approximately30seconds, full_song approximately3minutes. Measure the actual audio; no exact duration guarantee."},"instrumental":{"type":"boolean"},"approved":{"type":"boolean","description":"True only after the user authorized this generation."},"cost_max":{"type":"integer","enum":[0]}}},"AudioMixRequest":{"type":"object","additionalProperties":false,"required":["id","duration_seconds","tracks","cost_max"],"properties":{"id":{"type":"string","pattern":"mix-[a-z0-9][a-z0-9_-]{0,63}$"},"duration_seconds":{"type":"number","minimum":0.05,"maximum":600},"tracks":{"type":"array","minItems":0,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","role","source"],"properties":{"id":{"type":"string","pattern":"^audio-[a-z0-9][a-z0-9_-]{0,63}$"},"role":{"enum":["music","narration","video"]},"source":{"oneOf":[{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"job"},"id":{"type":"string","pattern":"^api-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"sequence"},"id":{"type":"string","pattern":"^seq-[a-z0-9][a-z0-9_-]{0,94}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"casting"},"id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"variant":{"type":"integer","minimum":1,"maximum":4}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"narration"},"id":{"type":"string","pattern":"^tts-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"music"},"id":{"type":"string","pattern":"^mus-[a-z0-9][a-z0-9_-]{0,63}$"},"variant":{"type":"integer","enum":[1]}}},{"type":"object","additionalProperties":false,"required":["kind","id"],"properties":{"kind":{"const":"audio_upload"},"id":{"type":"string","pattern":"^aud_[a-f0-9]{32}$"},"variant":{"type":"integer","enum":[1]}}}]},"timeline_start_seconds":{"type":"number","minimum":0,"maximum":600},"source_start_seconds":{"type":"number","minimum":0,"maximum":86400},"duration_seconds":{"type":"number","exclusiveMinimum":0,"maximum":600},"gain_db":{"type":"number","minimum":-60,"maximum":12},"fade_in_seconds":{"type":"number","minimum":0,"maximum":300.0},"fade_out_seconds":{"type":"number","minimum":0,"maximum":300.0},"muted":{"type":"boolean"}}}},"format":{"type":"string","enum":["wav"],"default":"wav"},"cost_max":{"type":"integer","enum":[0]}}}}},"x-aurora-model-matrix":{"schema":"aurora-model-capabilities/v1","verification":{"scope":"declared contract and historical technical pilots","live_preflight_required":true,"current_account_availability_verified":false,"human_audiovisual_approval":false,"evidence_document":"docs/API_EXPORT_CAPABILITIES_EVIDENCE.md"},"models":{"Veo 3.1 - Lite [Lower Priority]":{"generate_durations":{"text":[4,6,8],"frames":[4,6,8],"ingredients":[8]},"resolutions":["720p"],"native_voice_references":false,"implementation_status":"adapter_implemented; live_preflight_required","verification_status":"partially_verified","verified_profiles":[{"operation":"generate","mode":"text","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_roles":[],"technical_verification":"passed","human_audiovisual_approval":false},{"operation":"generate","mode":"frames","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_roles":["start","end"],"technical_verification":"passed","human_audiovisual_approval":false},{"operation":"generate","mode":"frames","duration_seconds":4,"aspect":"9:16","resolution":"720p","outputs":1,"reference_roles":["start"],"technical_verification":"passed","human_audiovisual_approval":false},{"operation":"generate","mode":"ingredients","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_roles":["character","environment"],"technical_verification":"passed","human_audiovisual_approval":false}],"implemented_resolutions":["720p"],"other_resolutions_code":"render_resolution_adapter_unverified","native_character_bound_voice_references":true},"Omni 1.1 Flash":{"generate_durations":{"text":[4,6,8,10],"frames":[4,6,8,10],"ingredients":[4,6,8,10]},"resolutions":["360p","720p"],"native_voice_references":true,"implementation_status":"adapter_implemented; live_preflight_required","verification_status":"pending_live_pilot","verified_profiles":[],"implemented_resolutions":["720p"],"other_resolutions_code":"render_resolution_adapter_unverified"}},"aspects":["16:9","9:16"],"generate_outputs":[1,2,3,4],"source_operation_outputs":[1],"frame_roles":["start","end"],"frame_aspect_relative_tolerance":0.05,"ingredient_limit":3,"cost_max":0,"native_characters":{"implemented":true,"implementation_scope":"bound_character_only","bound_character":{"implemented":true,"backend":"chrome-devtools-mcp","models":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"],"operation":"generate","mode":"ingredients","native_character_limit":1,"audio_reference_limit":1,"request":{"voices[].binding":"character","voices[].character_id":"same observed flow_character_id","voices[].flow_voice_id":"saved voice from the owned catalog"},"ownership_required":true,"live_source_and_chip_verification":true,"exact_zero_required":true,"verification_status":"live_zero_pilot_completed","human_audiovisual_approval":false,"verified_profiles":[{"operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"16:9","resolution":"720p","outputs":1,"native_characters":1,"saved_voice_binding":"character","saved_voice_references":1,"additional_visual_ingredients":1,"completed_shots":3,"google_visible_credits":0,"google_balance_unchanged":true,"account_scope":"normal AUROFLOW user on the existing shared Google Ultra session","technical_verification":"passed","human_audiovisual_approval":false}],"unverified_models":["Omni 1.1 Flash"],"implementation_scope":"one_owned_native_character_with_its_exact_saved_voice","requires_live_preflight":true,"visual_reference_limit":3,"native_character_counts_as_visual":true,"bound_voice_counts_as_visual":false,"three_visuals_tested":true,"three_visuals_tested_scope":"listed_verified_profiles_only","three_visuals_verified_profiles":[{"verified_at":"2026-10-18","operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_composition":"one_bound_character_plus_two_uploaded_images","native_characters":1,"additional_visual_ingredients":2,"visual_ingredients":3,"saved_voice_binding":"character","saved_voice_references":1,"completed_shots":1,"technical_verification":"completed_and_full_decoded","observed_width":720,"observed_height":1280,"observed_duration_seconds":8.0,"google_visible_credits":0,"google_balance_unchanged":true,"requires_live_preflight":true,"quality_limit":"identity_and_geometry_require_output_review","human_audiovisual_approval":false,"voice_continuity_verified":false,"regional_accent_verified":false}],"quality_limit":"identity_and_geometry_require_output_review","zero_cost_verified_models":["Veo 3.1 - Lite [Lower Priority]"]},"unbound":{"implemented":false,"code":"native_character_unimplemented","scope":"Unbound native Character render remains unsupported; use native_character_voice_binding for the verified one-character/one-saved-voice route.","implementation_scope":"unbound_native_character_unsupported"},"requires_live_preflight":true},"native_voice_reference_modes":["ingredients"],"native_voice_reference_operations":["generate"],"native_voice_reference_limit":1,"native_voice_reference_verification":"pending_live_pilot","audio_routing":{"native":{"implemented":true,"verification_status":"see_exact_model_verified_profiles","speech_accent_and_lip_sync":"human_review_required"},"silent":{"implemented":false,"code":"editorial_audio_processing_required","stage":"approved_editorial_processing_required"},"post":{"implemented":false,"code":"editorial_audio_processing_required","stage":"approved_editorial_processing_required"}},"operations":{"generate":{"models":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"],"default_model":"Veo 3.1 - Lite [Lower Priority]","implementation_status":"adapter_implemented; live_preflight_required","verification_status":"see_exact_model_verified_profiles"},"extend":{"models":["Veo 3.1 - Lite [Lower Priority]"],"default_model":"Veo 3.1 - Lite [Lower Priority]","implementation_status":"blocked; source preparation and submission recovery require verified adapter","verification_status":"pending_live_pilot","code":"source_render_adapter_unverified","preparation_verification":{"status":"verified_for_exact_source_profile","scope":"historical diagnostic preparation; does not enable public Extend rendering","verified_at":"2026-10-06","source_profile":{"model":"Veo 3.1 - Lite [Lower Priority]","mode":"frames","reference_roles":["start"],"kind":"clip","lineage":"veo","duration_seconds":4,"aspect":"9:16","resolution":"720p","outputs":1},"evidence":{"document":"docs/API_EXPORT_CAPABILITIES_EVIDENCE.md","preparation_job_id":"api-character-frame-es-20261006-pilot-extend","source_asset_id":"45bc93e2-e8d9-417b-8f9e-8ecbd77c1df7","media_id":"cb346fb9-725f-4c1a-a368-d550ed9e3964","sha256":"2c6a1340d13023df67c8fee998dbf1ca962abc66766e451e1637ccd2cde112f6","bytes":1167551,"width":720,"height":1280,"full_decode":"passed","source_receipt_sha256":"cd346351ed9269d84ed77112e3217849f60ff32623c0cb9339117210c89f3ab9","receipts":["Biker2Reports/flow-zero/api-contract-review-20261006/native-source-reuse-verification.json","Biker2Reports/flow-zero/api-contract-review-20261006/native-extend-reconciled.json"]},"download_via":"extension","durable_download_receipt_verified":true,"second_preparation_reused":true,"composer":{"language":"es","exit_chip":"Salir del modo Alargar","source_clip_class":"has-extend-composing","placeholder_class":"extend-composing","placeholder_disabled":true,"entry_intent_durable":true,"reconciled":true,"entry_repeated":false},"generated":false,"human_audiovisual_approval":false},"render_verification":{"enabled":false,"status":"blocked_before_generate","code":"source_render_adapter_unverified","required_cost":0,"observed_cost":5,"observed_cost_scope":"single historical diagnostic preparation on 2026-10-06; not a universal price or current-account availability guarantee","evidence_receipt":"Biker2Reports/flow-zero/api-contract-review-20261006/native-extend-controls-cost-block.json","model_controls_verified":false,"agent_disabled_verified":false,"output_verified":false,"generate_clicked":false,"submission_recovery_verified":false}},"edit_scene":{"models":["Omni 1.1 Flash"],"default_model":"Omni 1.1 Flash","implementation_status":"blocked; source preparation and submission recovery require verified adapter","verification_status":"pending_live_pilot","code":"source_render_adapter_unverified"}},"source_operation_durations":{"extend":[8],"edit_scene":[4,6,8]},"native_voice_reference_implementation":{"implemented":true,"implementation_scope":"character_bound_saved_voice_only","bound_character":{"implemented":true,"backend":"chrome-devtools-mcp","models":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"],"operation":"generate","mode":"ingredients","native_character_limit":1,"audio_reference_limit":1,"request":{"voices[].binding":"character","voices[].character_id":"same observed flow_character_id","voices[].flow_voice_id":"saved voice from the owned catalog"},"ownership_required":true,"live_source_and_chip_verification":true,"exact_zero_required":true,"verification_status":"live_zero_pilot_completed","human_audiovisual_approval":false,"verified_profiles":[{"operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"16:9","resolution":"720p","outputs":1,"native_characters":1,"saved_voice_binding":"character","saved_voice_references":1,"additional_visual_ingredients":1,"completed_shots":3,"google_visible_credits":0,"google_balance_unchanged":true,"account_scope":"normal AUROFLOW user on the existing shared Google Ultra session","technical_verification":"passed","human_audiovisual_approval":false}],"unverified_models":["Omni 1.1 Flash"],"implementation_scope":"one_owned_native_character_with_its_exact_saved_voice","requires_live_preflight":true,"visual_reference_limit":3,"native_character_counts_as_visual":true,"bound_voice_counts_as_visual":false,"three_visuals_tested":true,"three_visuals_tested_scope":"listed_verified_profiles_only","three_visuals_verified_profiles":[{"verified_at":"2026-10-18","operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_composition":"one_bound_character_plus_two_uploaded_images","native_characters":1,"additional_visual_ingredients":2,"visual_ingredients":3,"saved_voice_binding":"character","saved_voice_references":1,"completed_shots":1,"technical_verification":"completed_and_full_decoded","observed_width":720,"observed_height":1280,"observed_duration_seconds":8.0,"google_visible_credits":0,"google_balance_unchanged":true,"requires_live_preflight":true,"quality_limit":"identity_and_geometry_require_output_review","human_audiovisual_approval":false,"voice_continuity_verified":false,"regional_accent_verified":false}],"quality_limit":"identity_and_geometry_require_output_review","zero_cost_verified_models":["Veo 3.1 - Lite [Lower Priority]"]},"standalone":{"implemented":false,"code":"native_voice_identity_unverified","reason":"Picker identity is observable; final chip identity is not yet verified.","implementation_scope":"standalone_saved_voice_not_enabled","requires_live_preflight":true},"requires_live_preflight":true},"native_reference_discovery":{"implemented":true,"endpoint":"/v1/native-references","mcp_tool":"auroflow_native_references","scope":"Native resources created by the authenticated user or assigned to the current project; private per account.","render_enabled":true,"saved_voice_model":"Omni 1.1 Flash","saved_voice_mode":"ingredients","saved_voice_limit":1,"zero_credit_status":"completed_native_character_bound_voice_zero_profile","last_live_probe":{"observed_at":"2026-10-18T01:28:32Z","probe_context":"shared Google Ultra session, one output, 16:9, Agent off","profiles":[{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"360p","duration_seconds":4,"outputs":1,"cost":4},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"360p","duration_seconds":6,"outputs":1,"cost":5},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"360p","duration_seconds":8,"outputs":1,"cost":6},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"360p","duration_seconds":10,"outputs":1,"cost":7},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"720p","duration_seconds":4,"outputs":1,"cost":7},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"720p","duration_seconds":6,"outputs":1,"cost":10},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"720p","duration_seconds":8,"outputs":1,"cost":12},{"model":"Omni 1.1 Flash","mode":"ingredients","resolution":"720p","duration_seconds":10,"outputs":1,"cost":15}],"minimum_observed_google_credits":4,"generation_calls":0},"native_character_identity":"native editor URL and unique picker name/portrait; final typed Character preview","saved_voice_identity":"native editor audio UUID or selected saved voice field, then native preview audio count; standalone voice chip audio URL is observable by hover","continuity_verified":false,"live_revalidation_required":true,"sources":["https://support.google.com/flow/answer/16935308?hl=en","https://support.google.com/flow/answer/16353334?hl=en","https://support.google.com/flow/answer/16526234?hl=en"],"zero_credit_status_scope":"native Character with its one explicitly bound saved voice; never a duplicate standalone audio","native_character_bundle_probe":{"observed_at":"2026-10-18T01:36:48Z","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"16:9","outputs":1,"visible_google_credits":0,"reference_kind":"native Character with a saved voice in its editor","character_chip_identity_verified":false,"saved_voice_application_verified":false,"voice_continuity_verified":false,"generation_calls":0,"render_enabled":false,"blocker":"native_character_and_voice_chip_identity_unverified"},"character_voice_binding_enabled":true,"veo_voice_picker_probe":{"observed_at":"2026-10-18T01:41:55Z","model":"Veo 3.1 - Lite [Lower Priority]","visible_google_credits":0,"standalone_voice_chip_count":1,"final_hover_audio_uuid_observed":true,"generation_calls":0,"note":"Standalone audio requires visual Ingredients. A Character already containing audio would exceed the one-audio limit."},"last_completed_binding_pilot":{"date":"2026-10-18","profile":{"operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"16:9","resolution":"720p","outputs":1,"native_characters":1,"saved_voice_binding":"character","saved_voice_references":1,"additional_visual_ingredients":1,"completed_shots":3,"google_visible_credits":0,"google_balance_unchanged":true,"account_scope":"normal AUROFLOW user on the existing shared Google Ultra session","technical_verification":"passed","human_audiovisual_approval":false},"live_revalidation_required":true,"voice_evidence":{"same_saved_reference_in_all_shots":true,"automatic_cosine_to_reference_range":[0.824216365814209,0.8538851141929626],"automatic_pairwise_cosine_range":[0.8549006581306458,0.9083989262580872],"method":"Resemblyzer0.1.4 CPU VAD speech embeddings","human_identity_or_accent_verification":false},"evidence_document":"docs/research/flow-native-miga-voice-mcp-20261018.md"},"continuity_verification":"same observed binding and automatic acoustic comparison; per-film human review remains required","saved_voice_model_scope":"legacy_standalone_discovery_model_not_zero_cost_admission","bound_character_models":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"],"standalone_voice_render_enabled":false,"requires_live_preflight":true},"native_character_voice_binding":{"implemented":true,"backend":"chrome-devtools-mcp","models":["Veo 3.1 - Lite [Lower Priority]","Omni 1.1 Flash"],"operation":"generate","mode":"ingredients","native_character_limit":1,"audio_reference_limit":1,"request":{"voices[].binding":"character","voices[].character_id":"same observed flow_character_id","voices[].flow_voice_id":"saved voice from the owned catalog"},"ownership_required":true,"live_source_and_chip_verification":true,"exact_zero_required":true,"verification_status":"live_zero_pilot_completed","human_audiovisual_approval":false,"verified_profiles":[{"operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"16:9","resolution":"720p","outputs":1,"native_characters":1,"saved_voice_binding":"character","saved_voice_references":1,"additional_visual_ingredients":1,"completed_shots":3,"google_visible_credits":0,"google_balance_unchanged":true,"account_scope":"normal AUROFLOW user on the existing shared Google Ultra session","technical_verification":"passed","human_audiovisual_approval":false}],"unverified_models":["Omni 1.1 Flash"],"implementation_scope":"one_owned_native_character_with_its_exact_saved_voice","requires_live_preflight":true,"visual_reference_limit":3,"native_character_counts_as_visual":true,"bound_voice_counts_as_visual":false,"three_visuals_tested":true,"three_visuals_tested_scope":"listed_verified_profiles_only","three_visuals_verified_profiles":[{"verified_at":"2026-10-18","operation":"generate","model":"Veo 3.1 - Lite [Lower Priority]","mode":"ingredients","duration_seconds":8,"aspect":"9:16","resolution":"720p","outputs":1,"reference_composition":"one_bound_character_plus_two_uploaded_images","native_characters":1,"additional_visual_ingredients":2,"visual_ingredients":3,"saved_voice_binding":"character","saved_voice_references":1,"completed_shots":1,"technical_verification":"completed_and_full_decoded","observed_width":720,"observed_height":1280,"observed_duration_seconds":8.0,"google_visible_credits":0,"google_balance_unchanged":true,"requires_live_preflight":true,"quality_limit":"identity_and_geometry_require_output_review","human_audiovisual_approval":false,"voice_continuity_verified":false,"regional_accent_verified":false}],"quality_limit":"identity_and_geometry_require_output_review","zero_cost_verified_models":["Veo 3.1 - Lite [Lower Priority]"]},"native_library_authoring":{"implemented":true,"verification_status":"live_zero_selfservice_pilot_completed","endpoints":{"voice":"POST /v1/native-voices","character":"POST /v1/native-characters","operation":"GET /v1/native-operations/{lib-id}","recover":"POST /v1/native-operations/{lib-id}/recover","presets":"GET /v1/native-voices/presets"},"operator_required":false,"ownership":"authenticated account and assigned project","queue":"same durable fair priority queue as videos","voice_creation":"preset + performance + literal sample dialogue; native Save; no additional Sync/preview requested","character_creation":"owned uploaded image + owned saved voice; no image or video generation","cost_max":0,"human_audiovisual_approval":false,"live_verification":{"date":"2026-10-18","ordinary_auroflow_accounts":2,"new_native_voices":2,"new_native_characters":2,"completed_videos":2,"video_duration_seconds":8,"google_credit_delta":0,"public_quoted_cost":0,"interfaces":["public MCP","production web form code with real HTTPS and normal sessions"],"google_entitlement":"existing connected Ultra account; no unsubscribed Google account tested","visual_browser_web_layout_verified":false,"human_audiovisual_approval":false}},"sequence_finishing":{"implemented":true,"verification_status":"live_public_mcp_and_web_completed","execution":"server_ffmpeg_owned_sources_only","request":{"assembly":"local","cost_max":0,"clips_framing":"pixel crop x/y/width/height inside verified source","finishing":{"audio_normalize":true,"target_lufs":-16,"true_peak_db":-2,"edge_fade_ms":25,"seam_smoothing_ms":250,"video_fade_ms":120}},"source_generation_calls":0,"google_credits":0,"auro_credits":0,"client_processing_required":false,"browser_required":false,"speech_protection":"Declared speech_ranges; smoothing skipped on overlap or without ranges. Default web protection covers each entire selected clip.","limits":{"clips":50,"seconds":600,"output":"720p/24fps"},"human_audiovisual_approval":false,"verification":{"date_utc":"2026-10-18","normal_user_accounts":2,"normal_queue_priority":100,"public_mcp_completed":true,"production_web_script_real_https_completed":true,"web_visual_layout_assessed":true,"owned_source_hash_verification":true,"private_download_hash_verification":true,"idempotent_replay_no_render":true,"cross_account_access_rejected":true,"human_audiovisual_approval":false,"real_chrome_normal_user_completed":true,"real_browser_normal_user_accounts":1,"responsive_css_widths_verified":[1144,500,390],"native_browser_download_hash_verified":true,"full_real_browser_playback":{"seconds":21.5,"decoded_video_frames":520,"dropped_video_frames":0,"audio_context":"running","audio_muted":false,"volume":1,"audio_level_samples":429,"captured_dialogue_words_match":true,"human_listening_claimed":false}}},"film_studio":{"implemented":true,"source_types":["public_url","summary"],"screenplay_editing":true,"max_shots":12,"shot_seconds":8,"render_requires_explicit_action":true,"cost_max":0,"platform_zero_cost_guard":true,"durable_preparation_queue":true,"preparation_per_account_limit":3,"preparation_global_limit":32,"private_project_limit":100,"ai_engines":{"local":{"model":"Voxtral-Mini-3B-2507-Q4_K_M","revision":"20616573013f28229fff61de74359d3eeff61f6a","audio_input":true,"template":"mistral-v7-tekken;no-jinja","audio_probe_seconds":21.5,"literal_phrases_recovered":3,"voice_continuity_verified":false,"regional_accent_verified":false},"codex":{"selected_model":"gpt-6-luna","reasoning_effort":"medium","installation_version":"0.163.0","authentication":"verified_on_server","inference_smoke_test":"passed","quota_stop_at_percent":90,"host_tools_disabled":true}},"native_character_reuse":true,"nano_banana_generation":{"ready":false,"zero_cost_verified":false,"image_prompt_preparation":true},"human_audiovisual_approval":false,"verification":"public_normal_account_flash_url_luna_summary_and_three_shot_server_film_passed","audio_review_max_seconds":120,"source_encodings":["identity","gzip","deflate"],"fixed_dialogue_literals":true,"zero_cost_movie_trial":{"film_id":"film-254812dc-0048-4f0f-8411-d61eed1314d5","shots":3,"platform_credits":0,"google_credits":0,"human_approval":false},"default_external_engine":"codex-luna-medium"}},"x-aurora-delivery-provenance":{"native_variants_immutable":true,"effective_routes":["/v1/jobs/{id}/video","/v1/jobs/{id}/variants/{variant}/video"],"explicit_native_route":"/v1/jobs/{id}/variants/{variant}/native-video","silent_derivation_requires_approved_source_and_durable_receipt":true,"unverified_derivation":"action_required; no effective video URL","human_audiovisual_approval":false},"x-aurora-queue":{"endpoint":"/v1/queue","max_pending_per_account":100,"max_pending_total":4096,"normal_global_admission_ceiling":3840,"fair_account_order":"FIFO per account, alternating accounts within the same service tier","position_fields":["position","ahead_jobs","ahead_accounts","estimated_wait_seconds","estimated_completion_seconds"],"eta_policy":"Estimated from observed completion times and the canonical daily submission cap; null when unavailable or paused","overflow_status":429,"retry":"exponential backoff; reconcile the same job ID after a timeout"},"x-aurora-tenant-projects":{"assignment_endpoint":"/v1/me","policy":"each verified account atomically claims one unused administrator-observed Flow project from a protected pool","request_fields":"project_url, account_ref and target_id may be omitted; the server injects them","mismatch":"a client-supplied value that differs from the assignment is rejected","visibility":"Private /v1/jobs details, prompts, references and balances belong to their owner. Verified members may browse sanitized job status and completed video variants through /v1/social/jobs.","capacity":"registration pauses when no prepared project remains; verification keeps its token and does not activate the account or grant credits until assignment succeeds","provenance":"the service never invents a Flow URL or creates a Google project without an observed project URL"},"x-aurora-credits":{"endpoint":"/v1/credits","quote_endpoint":"/v1/quote","seconds_per_credit":60,"unit":"generated_minute","exact_seconds_fields":["balance_seconds","available_seconds","reserved_seconds","ledger[].delta_seconds","ledger[].balance_after_seconds"],"reservation":"sum requested duration across outputs; measured generated duration is charged on completion when no temporary promotion is active","promotion":"check /service.json and /v1/credits; an active promotion waives new job charges until its UTC expiry","refund":"verified failure returns the reservation; uncertain submissions remain reserved until reconciled"},"x-auroflow-media":{"upload_endpoint":"/v1/uploads","content_types":["image/jpeg","image/png","image/webp"],"max_file_bytes":10485760,"ownership":"uploads are private to the authenticated account and referenced only by opaque upload IDs","frames":"first_frame is required for Frames; last_frame is optional and cannot be mixed with Ingredients","ingredients":"one to three total visual references across ingredients and characters","characters":"character images are visual Ingredients; they do not claim native Flow Character selection"},"x-auro-access":{"registration_required":true,"email_verification_required":true,"public_discovery":["/llms.txt","/llms-full.txt","/guide.md","/openapi.json"],"anonymous_generation":false},"x-auro-mcp":{"endpoint":"/v1/mcp","transport":"streamable-http","stateless":true,"protocol_versions":["2025-11-25","2025-06-18","2025-03-26"],"raw_browser_tools":false}}