{"openapi":"3.1.1","info":{"title":"Poietra Render API","version":"0.1.0","description":"Render portable Poietra projects with a self-hosted Node 24 service. The public poietra.com site distributes documentation; it is not a hosted render endpoint. Run pnpm render:api from the source checkout. Rendering uses standalone WASM with no Chromium or FFmpeg."},"servers":[{"url":"http://127.0.0.1:8799","description":"Your running Poietra render service. The default is local-only."}],"externalDocs":{"url":"https://poietra.com/developers/","description":"Setup, MCP and working examples"},"security":[{},{"renderToken":[]}],"tags":[{"name":"Rendering","description":"Stateless file-to-result rendering"}],"paths":{"/capabilities":{"get":{"operationId":"poietraCapabilities","summary":"Read supported formats, source media and limits","tags":["Rendering"],"responses":{"401":{"description":"Missing or incorrect bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Disallowed Origin or Host.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected transport failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"200":{"description":"Read supported formats, source media and limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Capabilities"}}}}}}},"/inspect":{"post":{"operationId":"poietraInspect","summary":"Validate a portable project and report compatibility","tags":["Rendering"],"requestBody":{"required":true,"description":"The complete portable project, directly as JSON, with embedded PNG/JPEG and PCM WAV. Maximum 32 MiB. This endpoint does not accept a URL, multipart upload or {project: ...} wrapper.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"},"examples":{"hello":{"summary":"One second of editable text at 1280x720","externalValue":"https://poietra.com/examples/hello.poietra.json"}}}}},"description":"Validates document structure, references and timing, and reports known unsupported source types. An empty issues list does not guarantee that embedded media will decode during rendering. Inspection does not encode frames.","responses":{"401":{"description":"Missing or incorrect bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Disallowed Origin or Host.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected transport failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"400":{"description":"Unknown, empty or repeated query parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Input exceeds 32 MiB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Content-Type must be application/json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid project/options, unsupported media or render failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Another inspect/render request is running. Retry after completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"200":{"description":"Validate a portable project and report compatibility","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Inspection"}}}}}}},"/render":{"post":{"operationId":"poietraRender","summary":"Render a portable project to SVG, PNG or MP4","tags":["Rendering"],"requestBody":{"required":true,"description":"The complete portable project, directly as JSON, with embedded PNG/JPEG and PCM WAV. Maximum 32 MiB. This endpoint does not accept a URL, multipart upload or {project: ...} wrapper.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"},"examples":{"hello":{"summary":"One second of editable text at 1280x720","externalValue":"https://poietra.com/examples/hello.poietra.json"}}}}},"description":"Waits for completion and returns raw file bytes. No job ID or persistent result URL. A disconnect cancels the job. The default timeout is 120 seconds. MP4 is H.264 with MP3 when audio is present; source video, compressed audio, WebP and external assets are unsupported.","parameters":[{"name":"format","in":"query","required":false,"description":"Output format.","schema":{"type":"string","enum":["svg","png","mp4"],"default":"png"}},{"name":"width","in":"query","required":false,"description":"Output width. MP4 dimensions must be even; total pixels must not exceed 2,073,600. A single supplied dimension preserves aspect ratio.","schema":{"type":"integer","minimum":1,"maximum":1920}},{"name":"height","in":"query","required":false,"description":"Output height. Same dimension constraints as width.","schema":{"type":"integer","minimum":1,"maximum":1920}},{"name":"fps","in":"query","required":false,"description":"Frame rate. MP4 is limited to 60 seconds and 1800 frames, whichever is reached first.","schema":{"type":"integer","enum":[24,30,60],"default":30}},{"name":"timeMs","in":"query","required":false,"description":"Project time for SVG/PNG, inside the project duration. MP4 requires zero.","schema":{"type":"number","minimum":0,"default":0}}],"responses":{"401":{"description":"Missing or incorrect bearer token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Disallowed Origin or Host.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected transport failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"400":{"description":"Unknown, empty or repeated query parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Input exceeds 32 MiB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Content-Type must be application/json.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Invalid project/options, unsupported media or render failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Another inspect/render request is running. Retry after completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"200":{"description":"Complete output file as binary (SVG is UTF-8 XML).","headers":{"Content-Disposition":{"schema":{"type":"string"},"description":"Attachment filename."},"X-Poietra-Frames":{"schema":{"type":"integer","minimum":0},"description":"Encoded video frames; zero for still output."},"X-Poietra-Rasterized-Frames":{"schema":{"type":"integer","minimum":0},"description":"Rasterized frames, excluding reused static holds."},"X-Poietra-Duration-Ms":{"schema":{"type":"number","minimum":0},"description":"Authored duration; zero for still output."}},"content":{"image/svg+xml":{},"image/png":{},"video/mp4":{}}},"504":{"description":"Rendering exceeded its time limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"renderToken":{"type":"http","scheme":"bearer","description":"POIETRA_RENDER_TOKEN. Required whenever configured; binding outside loopback requires a token. Unconfigured loopback accepts unauthenticated requests."}},"schemas":{"Project":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"scenes":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"name":{"type":"string","maxLength":200},"width":{"type":"integer","minimum":1,"maximum":8192},"height":{"type":"integer","minimum":1,"maximum":8192},"objects":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"$ref":"#/components/schemas/Project/$defs/SceneObject"}},"background":{"type":"string","pattern":"^(none|transparent|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8})$"},"audioTracks":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"$ref":"#/components/schemas/Project/$defs/AudioTrack"}},"transitions":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"toId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"fromId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"tracks":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"type":"object","properties":{"path":{"anyOf":[{"type":"object","properties":{"c1":{"type":"object","properties":{"x":{"type":"number","minimum":-100000,"maximum":100000},"y":{"type":"number","minimum":-100000,"maximum":100000}},"required":["x","y"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"c2":{"type":"object","properties":{"x":{"type":"number","minimum":-100000,"maximum":100000},"y":{"type":"number","minimum":-100000,"maximum":100000}},"required":["x","y"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"required":["c1","c2"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"type":{"type":"string","enum":["move","write","fade","grow","none"]},"order":{"type":"string","enum":["together","sequential"]},"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000},"implicit":{"type":"boolean"},"objectId":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"keyframes":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"$ref":"#/components/schemas/Project/$defs/Keyframe"}},"fillTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"pathTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"sizeTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"revealTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"strokeTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"opacityTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"fontSizeTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"positionTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"rotationTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"strokeWidthTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]},"cornerRadiusTiming":{"anyOf":[{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":600000},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["start","easing","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},{"type":"null"}]}},"required":["path","type","order","start","easing","duration","objectId"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["id","toId","fromId","tracks","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"compositions":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"name":{"type":"string","maxLength":200},"accent":{"type":"string","pattern":"^(none|transparent|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8})$"},"states":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"additionalProperties":{"type":"object","properties":{"x":{"type":"number","minimum":-100000,"maximum":100000},"y":{"type":"number","minimum":-100000,"maximum":100000},"fill":{"type":"string","pattern":"^(none|transparent|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8})$"},"path":{"type":"object","properties":{"c1":{"type":"object","properties":{"x":{"type":"number","minimum":-100000,"maximum":100000},"y":{"type":"number","minimum":-100000,"maximum":100000}},"required":["x","y"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"c2":{"type":"object","properties":{"x":{"type":"number","minimum":-100000,"maximum":100000},"y":{"type":"number","minimum":-100000,"maximum":100000}},"required":["x","y"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"required":["c1","c2"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"text":{"type":"string","maxLength":10000},"shear":{"type":"number","minimum":-100000,"maximum":100000},"width":{"type":"number","minimum":-100000,"maximum":100000},"effect":{"type":"string","enum":["none","glow"]},"height":{"type":"number","minimum":-100000,"maximum":100000},"scaleX":{"type":"number","minimum":-100000,"maximum":100000},"scaleY":{"type":"number","minimum":-100000,"maximum":100000},"stroke":{"type":"string","pattern":"^(none|transparent|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8})$"},"anchorX":{"type":"number","minimum":-100000,"maximum":100000},"anchorY":{"type":"number","minimum":-100000,"maximum":100000},"opacity":{"type":"number","minimum":0,"maximum":1},"visible":{"type":"boolean"},"fontSize":{"type":"number","minimum":0,"maximum":10000},"rotation":{"type":"number","minimum":-100000,"maximum":100000},"strokeWidth":{"type":"number","minimum":0,"maximum":10000},"cornerRadius":{"type":"number","minimum":0,"maximum":10000}},"required":["x","y","fill","path","text","width","effect","height","stroke","opacity","visible","fontSize","rotation","strokeWidth","cornerRadius"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"duration":{"type":"number","minimum":0,"maximum":600000}},"required":["id","name","accent","states","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"compositionOrder":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"minItems":1,"maxItems":100}},"required":["id","name","width","height","objects","background","transitions","compositions","compositionOrder"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}},"version":{"type":"integer","minimum":1,"maximum":2},"sceneOrder":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"minItems":1,"maxItems":100}},"required":["name","scenes","version","sceneOrder"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Poietra portable project","description":"Version 1 and 2 portable documents. Structural constraints are generated from the decoder. Ingestion also validates UTF-16 string lengths, references, timing, asset contents and rendering compatibility. Use POST /inspect before rendering; successful inspection does not guarantee codec decoding.","$defs":{"Easing":{"anyOf":[{"enum":["linear","easeInOut","easeIn","easeOut"]},{"type":"object","required":["type","x1","y1","x2","y2"],"additionalProperties":false,"properties":{"type":{"const":"cubicBezier"},"x1":{"type":"number","minimum":0,"maximum":1},"y1":{"type":"number","minimum":0,"maximum":1},"x2":{"type":"number","minimum":0,"maximum":1},"y2":{"type":"number","minimum":0,"maximum":1}}}]},"ImageAsset":{"type":"object","properties":{"src":{"type":"string","maxLength":1398166},"width":{"type":"integer","minimum":1,"maximum":2048},"height":{"type":"integer","minimum":1,"maximum":2048}},"required":["src","width","height"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"MediaAsset":{"type":"object","properties":{"src":{"type":"string","maxLength":44739307},"mime":{"type":"string","enum":["video/mp4","video/webm","audio/mpeg","audio/wav","audio/ogg","audio/flac","audio/mp4","audio/webm"]},"width":{"type":"integer","minimum":1,"maximum":8192},"height":{"type":"integer","minimum":1,"maximum":8192},"duration":{"type":"number","minimum":0,"maximum":86400000},"hasAudio":{"type":"boolean"},"waveform":{"type":"array","items":{"type":"number","minimum":0,"maximum":1},"minItems":0,"maxItems":160}},"required":["src","mime","duration","hasAudio"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"MediaPlayback":{"type":"object","properties":{"start":{"type":"number","minimum":0,"maximum":86400000},"offset":{"type":"number","minimum":0,"maximum":86400000},"duration":{"type":"number","minimum":0,"maximum":86400000}},"required":["start","offset","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"AudioTrack":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"name":{"type":"string","maxLength":200},"asset":{"$ref":"#/components/schemas/Project/$defs/MediaAsset"},"muted":{"type":"boolean"},"start":{"type":"number","minimum":0,"maximum":86400000},"offset":{"type":"number","minimum":0,"maximum":86400000},"volume":{"type":"number","minimum":0,"maximum":1},"duration":{"type":"number","minimum":0,"maximum":86400000}},"required":["id","name","asset","muted","start","offset","volume","duration"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"SceneObject":{"type":"object","properties":{"id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},"kind":{"type":"string","enum":["circle","rectangle","text","equation","path","arrow","numberline","image","video"]},"name":{"type":"string","maxLength":200},"image":{"$ref":"#/components/schemas/Project/$defs/ImageAsset"},"media":{"$ref":"#/components/schemas/Project/$defs/MediaAsset"},"order":{"type":"number","minimum":-100000,"maximum":100000},"locked":{"type":"boolean"},"groupId":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},{"type":"null"}]},"parentId":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9_-]{1,80}$","not":{"enum":["__proto__","constructor","prototype"]}},{"type":"null"}]},"playback":{"$ref":"#/components/schemas/Project/$defs/MediaPlayback"}},"required":["id","kind","name","order","locked","groupId"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}},"Keyframe":{"type":"object","properties":{"at":{"type":"number","minimum":0,"maximum":1},"value":{"anyOf":[{"type":"number","minimum":-100000,"maximum":100000},{"type":"string","pattern":"^(none|transparent|#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{8})$"}]},"easing":{"$ref":"#/components/schemas/Project/$defs/Easing"},"deleted":{"type":"boolean"},"property":{"type":"string","enum":["x","y","anchorX","anchorY","opacity","width","height","scaleX","scaleY","rotation","shear","fill","stroke","strokeWidth","fontSize","cornerRadius","c1x","c1y","c2x","c2y","reveal"]}},"required":["at","value","easing","property"],"propertyNames":{"not":{"enum":["__proto__","constructor","prototype"]}}}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}},"Capabilities":{"type":"object","properties":{"formats":{"const":["svg","png","mp4"]},"videoCodec":{"const":"avc"},"audioCodec":{"const":"mp3"},"imageInputs":{"const":["image/png","image/jpeg"]},"audioInputs":{"const":["PCM WAV"]},"videoInputs":{"const":false},"maxInputBytes":{"const":33554432},"maxPixels":{"const":2073600},"maxVideoDurationMs":{"const":60000},"maxVideoFrames":{"const":1800},"externalAssets":{"const":false}},"required":["formats","videoCodec","audioCodec","imageInputs","audioInputs","videoInputs","maxInputBytes","maxPixels","maxVideoDurationMs","maxVideoFrames","externalAssets"]},"Inspection":{"type":"object","required":["name","scenes","durationMs","width","height","audibleTracks","issues","capabilities"],"properties":{"name":{"type":"string"},"scenes":{"type":"integer","minimum":1},"durationMs":{"type":"number","minimum":0},"width":{"type":"number","minimum":1},"height":{"type":"number","minimum":1},"audibleTracks":{"type":"integer","minimum":0},"issues":{"type":"array","items":{"type":"string"}},"capabilities":{"$ref":"#/components/schemas/Capabilities"}}}}}}