changedInput schema / properties / body / properties / seededGraphics / items / properties / source / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "anchor": {
- "additionalProperties": false,
- "properties": {
- "clipId": {
- "minLength": 1,
- "type": "string"
- },
- "offsetMs": {
- "type": "number"
- }
- },
- "required": [
- "clipId",
- "offsetMs"
- ],
- "type": "object"
- },
- "audioRole": {
- "enum": [
- "sfx",
- "music",
- "vo",
- "ambience"
- ],
- "type": "string"
- },
- "duck": {
- "additionalProperties": false,
- "properties": {
- "attackMs": {
- "minimum": 0,
- "type": "number"
- },
- "duckDb": {
- "maximum": 0,
- "type": "number"
- },
- "releaseMs": {
- "minimum": 0,
- "type": "number"
- },
- "windows": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "endMs": {
- "type": "number"
- },
- "startMs": {
- "type": "number"
- }
- },
- "required": [
- "startMs",
- "endMs"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "duckDb",
- "attackMs",
- "releaseMs"
- ],
- "type": "object"
- },
- "excludedRanges": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "end": {
- "minimum": 0,
- "type": "number"
- },
- "reason": {
- "type": "string"
- },
- "start": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "start",
- "end"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "fadeInMs": {
- "minimum": 0,
- "type": "number"
- },
- "fadeOutMs": {
- "minimum": 0,
- "type": "number"
- },
- "kenBurns": {
- "enum": [
- "in",
- "out",
- "pan-l",
- "pan-r",
- "none"
- ],
- "type": "string"
- },
- "kind": {
- "const": "media",
- "type": "string"
- },
- "loop": {
- "type": "boolean"
- },
- "mediaId": {
- "minLength": 1,
- "type": "string"
- },
- "muted": {
- "type": "boolean"
- },
- "playbackRate": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "reframe": {
- "additionalProperties": false,
- "properties": {
- "segments": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "bias": {
- "additionalProperties": false,
- "description": "Optional FINE framing nudge off the focus center, source-normalized in [−0.3, 0.3]. A small correction (headroom, rule-of-thirds), NOT a reframe — use `focus`/`zoom` for the actual shot. Omit (treated as 0) to sit dead-center on the focus.",
- "properties": {
- "x": {
- "description": "Horizontal nudge, source-normalized (+ = right).",
- "maximum": 0.3,
- "minimum": -0.3,
- "type": "number"
- },
- "y": {
- "description": "Vertical nudge, source-normalized (+ = down).",
- "maximum": 0.3,
- "minimum": -0.3,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y"
- ],
- "type": "object"
- },
- "ease": {
- "additionalProperties": false,
- "description": "Zoom/center ramp DURATIONS in SECONDS at this segment's edges — NOT a unitless 0–1 curve. ~0.3–0.6s reads as a snappy push; >1s reads sluggish. Keep `in` + `out` ≤ the segment's duration (endSec − startSec): the two edges share the span, so to ramp across the WHOLE segment set one edge to the full duration and the other to 0. Omit for an instant cut to this framing.",
- "properties": {
- "in": {
- "description": "Ease-IN ramp DURATION in seconds at the segment START.",
- "minimum": 0,
- "type": "number"
- },
- "out": {
- "description": "Ease-OUT ramp DURATION in seconds at the segment END.",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "in",
- "out"
- ],
- "type": "object"
- },
- "endSec": {
- "description": "Segment END in seconds, clip-relative. The span (endSec − startSec) is this segment's duration — the window `ease` ramps over.",
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "focus": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "mode": {
- "const": "frame-center",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "mode": {
- "const": "point",
- "type": "string"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "mode",
- "x",
- "y"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "faceId": {
- "minLength": 1,
- "type": "string"
- },
- "mode": {
- "const": "face",
- "type": "string"
- },
- "shotScale": {
- "enum": [
- "close",
- "standard",
- "wide"
- ],
- "type": "string"
- }
- },
- "required": [
- "mode",
- "faceId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "mode": {
- "const": "all-faces",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "mode": {
- "const": "active-speaker",
- "type": "string"
- }
- },
- "required": [
- "mode"
- ],
- "type": "object"
- }
- ],
- "description": "WHO/WHAT the camera tracks this segment (the reframe center), selected by `mode`: `frame-center` = no tracking, hold the geometric center (static/graphic footage, or a pure zoom); `point` = lock to a fixed source-normalized {x,y} (a non-moving on-screen element); `face` = track a detected face by `faceId` (from get_media_context), with optional `shotScale` close|standard|wide for tightness; `all-faces` = frame the bounding box of every detected face (group/ensemble shots); `active-speaker` = follow whoever is speaking (diarized talking-head / podcast). Pick by what the beat is about; pair with `zoom` for how tight."
- },
- "intent": {
- "description": "Optional editorial LABEL for diff/log readability (e.g. 'speaker-tight', 'wide-context'). Cosmetic — NOT honored by the derive math and excluded from the variant cache key.",
- "type": "string"
- },
- "startSec": {
- "description": "Segment START in seconds, clip-relative. Segments tile the clip's duration in order.",
- "minimum": 0,
- "type": "number"
- },
- "zoom": {
- "description": "How TIGHT the framing is — the fraction of the source the output viewport shows. <1 punches IN (a smaller source fraction, magnified to fill the frame); 1 = the full frame (no crop). ~0.6–0.8 is a moderate push-in, ~0.5 a tight close-up, 0.1 the maximum zoom. There is NO zoom-OUT past the full frame (max 1). Omit for the full frame. MUTUALLY EXCLUSIVE with `focus.shotScale` — a face-tracked shot is sized EITHER by the editorial scale (shotScale, which the bake calibrates to the detected face) OR by an explicit zoom, never both. A segment carrying both is REJECTED: shotScale wins at bake time and the zoom would be silently discarded.",
- "maximum": 1,
- "minimum": 0.1,
- "type": "number"
- }
- },
- "required": [
- "startSec",
- "endSec",
- "focus"
- ],
- "type": "object"
- },
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "segments"
- ],
- "type": "object"
- },
- "sync": {
- "enum": [
- "video",
- "independent"
- ],
- "type": "string"
- },
- "trim": {
- "additionalProperties": false,
- "properties": {
- "end": {
- "description": "Source trim end (seconds).",
- "minimum": 0,
- "type": "number"
- },
- "start": {
- "description": "Source trim start (seconds).",
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "start",
- "end"
- ],
- "type": "object"
- },
- "volume": {
- "maximum": 4,
- "minimum": 0,
- "type": "number"
- },
- "volumeDb": {
- "type": "number"
- }
- },
- "required": [
- "kind",
- "mediaId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "minLength": 1,
- "type": "string"
- },
- "execution": {
- "additionalProperties": false,
- "properties": {
- "assets": {
- "additionalProperties": {
- "minLength": 1,
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "mediaBindings": {
- "additionalProperties": {
- "items": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "seed": {
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 3,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId",
- "params",
- "seed"
- ],
- "type": "object"
- },
- "kind": {
- "const": "component",
- "type": "string"
- },
- "placement": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "clip",
- "type": "string"
- },
- "version": {
- "const": 3,
- "type": "number"
- }
- },
- "required": [
- "version",
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "content-slots",
- "type": "string"
- },
- "slots": {
- "additionalProperties": {
- "additionalProperties": false,
- "properties": {
- "ownership": {
- "enum": [
- "reference",
- "exclusive"
- ],
- "type": "string"
- },
- "targetClipIds": {
- "items": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "targetClipIds",
- "ownership"
- ],
- "type": "object"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "version": {
- "const": 3,
- "type": "number"
- }
- },
- "required": [
- "version",
- "kind",
- "slots"
- ],
- "type": "object"
- }
- ]
- },
- "props": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "zPlane": {
- "enum": [
- "front",
- "behind-subject"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "componentId",
- "props",
- "execution",
- "placement"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "anchor": {
- "additionalProperties": false,
- "properties": {
- "space": {
- "const": "scene",
- "type": "string"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "space",
- "x",
- "y"
- ],
- "type": "object"
- },
- "kind": {
- "const": "overlay",
- "type": "string"
- },
- "parallax": {
- "maximum": 0.3,
- "minimum": -0.3,
- "type": "number"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "pattern": "^(?!custom$)",
- "type": "string"
- },
- "zPlane": {
- "enum": [
- "front",
- "behind-subject"
- ],
- "type": "string"
- }
- },
- "required": [
- "kind",
- "primitiveId",
- "params"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "component": {
- "additionalProperties": false,
- "properties": {
- "assets": {
- "additionalProperties": {
- "minLength": 1,
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "mediaBindings": {
- "additionalProperties": {
- "items": {
- "maxLength": 128,
- "minLength": 1,
- "type": "string"
- },
- "type": "array"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "seed": {
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 3,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId",
- "params",
- "seed"
- ],
- "type": "object"
- },
- "kind": {
- "const": "effect",
- "type": "string"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "type": "string"
- },
- "targetTrackIds": {
- "items": {
- "minLength": 1,
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "wrapperOrder": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "html": {
- "description": "Your card's HTML — rendered VERBATIM as the graphic (shell motion via applyMotionPreset in a FOLLOWING call). CANVAS CONTRACT: the card renders in a viewport equal to the composition format's pixel frame (1080×1920 at 9:16 fhd); the root is NOT auto-pinned — declare explicit width/height matching the frame (box-sizing:border-box) and anchor content with flex/grid; position:absolute;inset:0 on the root does NOT fill the frame; for edge-to-edge backgrounds add an inner absolutely-positioned layer with generous negative inset. Overlay compositing applies a ~92% safe-area inset — keep critical copy away from the extreme edges. FONTS: name a family from GET /v1/fonts (list_render_fonts) — the renderer loads those faces for the card and waits for them, so `font-family: Inter` draws Inter. `@import` and remote font files are REFUSED: the card renders with no network. A family that is not on that list has no bytes behind it and the browser falls back, so end any stack with a generic (`Inter, sans-serif`) rather than relying on a system face being present.",
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "const": "card",
- "type": "string"
- },
- "tokens": {
- "additionalProperties": {
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "zPlane": {
- "const": "front",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "html"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "anchor": {
+ "additionalProperties": false,
+ "properties": {
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "offsetMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clipId",
+ "offsetMs"
+ ],
+ "type": "object"
+ },
+ "audioRole": {
+ "enum": [
+ "sfx",
+ "music",
+ "vo",
+ "ambience"
+ ],
+ "type": "string"
+ },
+ "duck": {
+ "additionalProperties": false,
+ "properties": {
+ "attackMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "duckDb": {
+ "maximum": 0,
+ "type": "number"
+ },
+ "releaseMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "windows": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "endMs": {
+ "type": "number"
+ },
+ "startMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "startMs",
+ "endMs"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "duckDb",
+ "attackMs",
+ "releaseMs"
+ ],
+ "type": "object"
+ },
+ "excludedRanges": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fadeInMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fadeOutMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "kenBurns": {
+ "enum": [
+ "in",
+ "out",
+ "pan-l",
+ "pan-r",
+ "none"
+ ],
+ "type": "string"
+ },
+ "kind": {
+ "const": "media",
+ "type": "string"
+ },
+ "loop": {
+ "type": "boolean"
+ },
+ "mediaId": {
+ "type": "string"
+ },
+ "muted": {
+ "type": "boolean"
+ },
+ "playbackRate": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "reframe": {
+ "additionalProperties": false,
+ "properties": {
+ "segments": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "bias": {
+ "additionalProperties": false,
+ "description": "Optional FINE framing nudge off the focus center, source-normalized in [−0.3, 0.3]. A small correction (headroom, rule-of-thirds), NOT a reframe — use `focus`/`zoom` for the actual shot. Omit (treated as 0) to sit dead-center on the focus.",
+ "properties": {
+ "x": {
+ "description": "Horizontal nudge, source-normalized (+ = right).",
+ "maximum": 0.3,
+ "minimum": -0.3,
+ "type": "number"
+ },
+ "y": {
+ "description": "Vertical nudge, source-normalized (+ = down).",
+ "maximum": 0.3,
+ "minimum": -0.3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "ease": {
+ "additionalProperties": false,
+ "description": "Zoom/center ramp DURATIONS in SECONDS at this segment's edges — NOT a unitless 0–1 curve. ~0.3–0.6s reads as a snappy push; >1s reads sluggish. Keep `in` + `out` ≤ the segment's duration (endSec − startSec): the two edges share the span, so to ramp across the WHOLE segment set one edge to the full duration and the other to 0. Omit for an instant cut to this framing.",
+ "properties": {
+ "in": {
+ "description": "Ease-IN ramp DURATION in seconds at the segment START.",
+ "minimum": 0,
+ "type": "number"
+ },
+ "out": {
+ "description": "Ease-OUT ramp DURATION in seconds at the segment END.",
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "in",
+ "out"
+ ],
+ "type": "object"
+ },
+ "endSec": {
+ "description": "Segment END in seconds, clip-relative. The span (endSec − startSec) is this segment's duration — the window `ease` ramps over.",
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "focus": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "frame-center",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "point",
+ "type": "string"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "mode",
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "faceId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "mode": {
+ "const": "face",
+ "type": "string"
+ },
+ "shotScale": {
+ "enum": [
+ "close",
+ "standard",
+ "wide"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "faceId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "all-faces",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "mode": {
+ "const": "active-speaker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "WHO/WHAT the camera tracks this segment (the reframe center), selected by `mode`: `frame-center` = no tracking, hold the geometric center (static/graphic footage, or a pure zoom); `point` = lock to a fixed source-normalized {x,y} (a non-moving on-screen element); `face` = track a detected face by `faceId` (from get_media_context), with optional `shotScale` close|standard|wide for tightness; `all-faces` = frame the bounding box of every detected face (group/ensemble shots); `active-speaker` = follow whoever is speaking (diarized talking-head / podcast). Pick by what the beat is about; pair with `zoom` for how tight."
+ },
+ "intent": {
+ "description": "Optional editorial LABEL for diff/log readability (e.g. 'speaker-tight', 'wide-context'). Cosmetic — NOT honored by the derive math and excluded from the variant cache key.",
+ "type": "string"
+ },
+ "startSec": {
+ "description": "Segment START in seconds, clip-relative. Segments tile the clip's duration in order.",
+ "minimum": 0,
+ "type": "number"
+ },
+ "zoom": {
+ "description": "How TIGHT the framing is — the fraction of the source the output viewport shows. <1 punches IN (a smaller source fraction, magnified to fill the frame); 1 = the full frame (no crop). ~0.6–0.8 is a moderate push-in, ~0.5 a tight close-up, 0.1 the maximum zoom. There is NO zoom-OUT past the full frame (max 1). Omit for the full frame. MUTUALLY EXCLUSIVE with `focus.shotScale`: a face-tracked shot is sized EITHER by the editorial scale (shotScale, calibrated to the detected face) OR by an explicit zoom — never both.",
+ "maximum": 1,
+ "minimum": 0.1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startSec",
+ "endSec",
+ "focus"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ }
+ },
+ "required": [
+ "segments"
+ ],
+ "type": "object"
+ },
+ "sync": {
+ "enum": [
+ "video",
+ "independent"
+ ],
+ "type": "string"
+ },
+ "trim": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ "volume": {
+ "maximum": 4,
+ "minimum": 0,
+ "type": "number"
+ },
+ "volumeDb": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "kind",
+ "mediaId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "componentId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "execution": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "seed": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "sourceVersionId": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "componentId",
+ "sourceVersionId",
+ "params",
+ "seed"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "seed": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "sourceVersionId": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "version": {
+ "const": 4,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "componentId",
+ "sourceVersionId",
+ "params",
+ "seed"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "kind": {
+ "const": "component",
+ "type": "string"
+ },
+ "placement": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "clip",
+ "type": "string"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "content-slots",
+ "type": "string"
+ },
+ "slots": {
+ "additionalProperties": {
+ "additionalProperties": false,
+ "properties": {
+ "ownership": {
+ "enum": [
+ "reference",
+ "exclusive"
+ ],
+ "type": "string"
+ },
+ "targetClipIds": {
+ "items": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "targetClipIds",
+ "ownership"
+ ],
+ "type": "object"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "kind",
+ "slots"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "props": {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "retired": {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "componentId",
+ "props"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "anchor": {
+ "additionalProperties": false,
+ "properties": {
+ "space": {
+ "const": "scene",
+ "type": "string"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "space",
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "kind": {
+ "const": "overlay",
+ "type": "string"
+ },
+ "parallax": {
+ "maximum": 0.3,
+ "minimum": -0.3,
+ "type": "number"
+ },
+ "params": {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "pattern": "^(?!custom$)",
+ "type": "string"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "primitiveId",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "seed": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "sourceVersionId": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "componentId",
+ "sourceVersionId",
+ "params",
+ "seed"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "seed": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "sourceVersionId": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "version": {
+ "const": 4,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "componentId",
+ "sourceVersionId",
+ "params",
+ "seed"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "kind": {
+ "const": "effect",
+ "type": "string"
+ },
+ "params": {
+ "additionalProperties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "targetTrackIds": {
+ "items": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "wrapperOrder": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "html": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "card",
+ "type": "string"
+ },
+ "tokens": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "zPlane": {
+ "const": "front",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "html"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "compositionId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "composition",
+ "type": "string"
+ },
+ "trim": {
+ "additionalProperties": false,
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind",
+ "compositionId"
+ ],
+ "type": "object"
+ }
+]