removedInput schema / properties / body / properties / ops / items / anyOf
Removed value: -[
- {
- "additionalProperties": false,
- "description": "Author a scene shot and place it on a dedicated overlay track. The host validates the scene, generates and registers an immutable wrapper component source, and emits the ordinary track/clip operations carrying `props.componentRef` — you edit a scene SPEC, never wrapper TSX or a source hash. Registration and the composition update are ONE undoable edit; a failure publishes nothing and leaves no clip pointing at an unresolved source. Pass EXACTLY ONE of `trackId` (an existing dedicated scene track) or `newTrack: true` (mint one). That track holds scene-shot clips and gaps only — no generic component/primitive/media clips in v1 — and existing generic overlay tracks are unaffected. Scene clips use front zPlane and full-frame placement: outer per-clip `region`, `position`, `scale`, `rotation`, `fit`, `effects`, `animate`, `params.transition`, `params.sequenceGroup` and internal fadeIn/fadeOut are REFUSED with a path, because the shot's own layer transforms are the single transform owner. TEXT: `space: \"screen\"` text is composed above the world result, stays fixed in the frame and stays sharp through focus; `space: \"world\"` text is rasterized into the 3D scene, moves with the camera and is occluded by geometry. Screenshots and world text are UNLIT and colour-managed so product UI colours are not tinted by the studio lighting, while device bodies are lit and cast shadows; an unlit surface still occludes. SCOPE GAP (pre-existing, neither closed nor changed by scene shots): global wrap effects — composition-level grades and camera effects — do not reach front-overlay clips, so they do not affect a scene shot. Author the look INSIDE the shot (`post.grain`, `post.vignette`, `post.focus`, `backdrop`, `environment`) instead. DISCOVERY: there is no built-in scene primitive to look up in list_catalog; the wrapper this operation registers appears afterwards as an ordinary INSTALLED component under the existing catalog rules. ASSETS: `assets` binds each slot name a layer references to a media id in the same project, and the slot's declared KIND decides what it admits — an image slot takes PNG, JPEG or WebP, a video slot MP4 or WebM. Binding the wrong kind is refused with the slot's path.",
- "properties": {
- "assets": {
- "additionalProperties": {
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "clipId": {
- "type": "string"
- },
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "newTrack": {
- "type": "boolean"
- },
- "newTrackId": {
- "type": "string"
- },
- "scene": {
- "additionalProperties": false,
- "description": "A version-2 scene shot: a self-contained 3D world-object shot that scene.add / scene.update materializes into an ordinary component clip. The shot owns its layers, camera, lighting, backdrop and normalized local animation; the composition owns start, duration, ordering, cuts and transitions. Coordinates are REFERENCE PIXELS: origin at frame centre, +X right, +Y down, +Z toward the viewer. referenceSize must have the SAME aspect ratio as the composition format; mismatch fails instead of cropping. At equal aspect ratio the shot scales uniformly by outputWidth/referenceWidth. A segment's easing belongs to the keyframe it ARRIVES at; the first keyframe has no easing. Authoring limits: 32 layers, 4 devices, 16 distinct image slots, 256 keyframes per channel, 2048 keyframes per shot. Version 2 supports nested groups, procedural slab/page/phone/laptop objects, screen- and world-space text, admitted image/component/video surfaces, fixed photographic and generated studio environments, transparent/solid/linear/radial backdrops, constraints, focus, grain and vignette. Raw HTML, custom shader props, imported GLB models, arbitrary external HDR environments, skeletal animation and physics are refused with an exact field path.",
- "properties": {
- "animation": {
- "default": [],
- "items": {
- "additionalProperties": false,
- "properties": {
- "keyframes": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "easing": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "linear",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "hold",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "bezier",
- "type": "string"
- },
- "x1": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "x2": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y1": {
- "maximum": 5,
- "minimum": -4,
- "type": "number"
- },
- "y2": {
- "maximum": 5,
- "minimum": -4,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "x1",
- "y1",
- "x2",
- "y2"
- ],
- "type": "object"
- }
- ]
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "at",
- "value"
- ],
- "type": "object"
- },
- "maxItems": 256,
- "minItems": 1,
- "type": "array"
- },
- "property": {
- "enum": [
- "positionX",
- "positionY",
- "positionZ",
- "rotationX",
- "rotationY",
- "rotationZ",
- "fov",
- "scale",
- "opacity",
- "openAngle",
- "x",
- "y",
- "rotation",
- "intensity",
- "distance",
- "range",
- "maxBlur"
- ],
- "type": "string"
- },
- "target": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "camera",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "layer",
- "type": "string"
- },
- "layerId": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "layerId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "environment",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "focus",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- }
- ]
- }
- },
- "required": [
- "target",
- "property",
- "keyframes"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "backdrop": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "transparent",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "kind": {
- "const": "solid",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "angle": {
- "default": 0,
- "type": "number"
- },
- "kind": {
- "const": "linear",
- "type": "string"
- },
- "stops": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- }
- },
- "required": [
- "at",
- "color"
- ],
- "type": "object"
- },
- "maxItems": 8,
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "stops"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "at": {
- "default": [
- 0.5,
- 0.5
- ],
- "items": false,
- "maxItems": 2,
- "minItems": 2,
- "prefixItems": [
- {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- ],
- "type": "array"
- },
- "kind": {
- "const": "radial",
- "type": "string"
- },
- "stops": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- }
- },
- "required": [
- "at",
- "color"
- ],
- "type": "object"
- },
- "maxItems": 8,
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "stops"
- ],
- "type": "object"
- }
- ],
- "default": {
- "kind": "transparent"
- }
- },
- "camera": {
- "additionalProperties": false,
- "properties": {
- "fov": {
- "maximum": 1.3962634015954636,
- "minimum": 0.3141592653589793,
- "type": "number"
- },
- "position": {
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- }
- },
- "type": "object"
- },
- "constraints": {
- "default": [],
- "items": {
- "additionalProperties": false,
- "properties": {
- "gap": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "kind": {
- "const": "minSeparation",
- "type": "string"
- },
- "objects": {
- "items": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "objects",
- "gap"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "environment": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "floorY": {
- "default": -420,
- "type": "number"
- },
- "intensity": {
- "default": 1,
- "minimum": 0,
- "type": "number"
- },
- "kind": {
- "const": "studio",
- "type": "string"
- },
- "lightingProfile": {
- "default": "studio",
- "enum": [
- "studio",
- "studio-edge"
- ],
- "type": "string"
- },
- "preset": {
- "default": "soft",
- "enum": [
- "soft",
- "key",
- "rim"
- ],
- "type": "string"
- },
- "shadowOpacity": {
- "default": 0.5,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "photographic-studio-v1",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- }
- ],
- "default": {
- "floorY": -420,
- "intensity": 1,
- "lightingProfile": "studio",
- "preset": "soft",
- "shadowOpacity": 0.5
- }
- },
- "layers": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "minItems": 1,
- "type": "array"
- },
- "post": {
- "additionalProperties": false,
- "default": {
- "focus": null,
- "grain": 0,
- "vignette": 0
- },
- "properties": {
- "focus": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "distance": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "maxBlur": {
- "maximum": 64,
- "minimum": 0,
- "type": "number"
- },
- "range": {
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "required": [
- "distance",
- "range",
- "maxBlur"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "grain": {
- "default": 0,
- "maximum": 0.5,
- "minimum": 0,
- "type": "number"
- },
- "vignette": {
- "default": 0,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "referenceSize": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "maximum": 8192,
- "minimum": 16,
- "type": "integer"
- },
- "width": {
- "maximum": 8192,
- "minimum": 16,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "version": {
- "const": 2,
- "type": "number"
- }
- },
- "required": [
- "version",
- "referenceSize",
- "layers"
- ],
- "type": "object"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- },
- "trackId": {
- "type": "string"
- },
- "transitionIn": {
- "additionalProperties": false,
- "description": "Inter-scene transition.",
- "properties": {
- "duration": {
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "cut",
- "fade",
- "dissolve",
- "wipe"
- ],
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "type": {
- "const": "scene.add",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "startTime",
- "duration",
- "scene",
- "assets"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Revise a scene shot in place by clip id. Send a replacement `scene` and/or `assets`; timing changes use the ordinary clip timing fields (`startTime`, `duration`, `transitionIn`). Omitted fields keep their persisted values and the MERGED result is re-validated as a whole, so a partial edit cannot leave the shot invalid. Changing only values or asset IDs updates props and bindings and REUSES the pinned source; changing the referenced SLOT SET regenerates the wrapper manifest and registers a new immutable source version atomically. Undo restores the source reference, spec, bindings and timing together. Topology, asset bindings, text content, font properties, device kind and colours are STATIC within a shot's animation — change them here (a revised spec) rather than trying to animate them. This is not a source trim or slip: a shortened or extended clip resamples the SAME normalized animation over its new duration, and trim/slip requests on generated animation are rejected rather than reinterpreted as media trims. In one batch, `scene.update` may target a shot added by an earlier `scene.add`. ASSETS: `assets` binds each slot name a layer references to a media id in the same project, and the slot's declared KIND decides what it admits — an image slot takes PNG, JPEG or WebP, a video slot MP4 or WebM. Binding the wrong kind is refused with the slot's path.",
- "properties": {
- "assets": {
- "additionalProperties": {
- "type": "string"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "clipId": {
- "type": "string"
- },
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "scene": {
- "additionalProperties": false,
- "description": "A version-2 scene shot: a self-contained 3D world-object shot that scene.add / scene.update materializes into an ordinary component clip. The shot owns its layers, camera, lighting, backdrop and normalized local animation; the composition owns start, duration, ordering, cuts and transitions. Coordinates are REFERENCE PIXELS: origin at frame centre, +X right, +Y down, +Z toward the viewer. referenceSize must have the SAME aspect ratio as the composition format; mismatch fails instead of cropping. At equal aspect ratio the shot scales uniformly by outputWidth/referenceWidth. A segment's easing belongs to the keyframe it ARRIVES at; the first keyframe has no easing. Authoring limits: 32 layers, 4 devices, 16 distinct image slots, 256 keyframes per channel, 2048 keyframes per shot. Version 2 supports nested groups, procedural slab/page/phone/laptop objects, screen- and world-space text, admitted image/component/video surfaces, fixed photographic and generated studio environments, transparent/solid/linear/radial backdrops, constraints, focus, grain and vignette. Raw HTML, custom shader props, imported GLB models, arbitrary external HDR environments, skeletal animation and physics are refused with an exact field path.",
- "properties": {
- "animation": {
- "default": [],
- "items": {
- "additionalProperties": false,
- "properties": {
- "keyframes": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "easing": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "linear",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "hold",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "bezier",
- "type": "string"
- },
- "x1": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "x2": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y1": {
- "maximum": 5,
- "minimum": -4,
- "type": "number"
- },
- "y2": {
- "maximum": 5,
- "minimum": -4,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "x1",
- "y1",
- "x2",
- "y2"
- ],
- "type": "object"
- }
- ]
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "at",
- "value"
- ],
- "type": "object"
- },
- "maxItems": 256,
- "minItems": 1,
- "type": "array"
- },
- "property": {
- "enum": [
- "positionX",
- "positionY",
- "positionZ",
- "rotationX",
- "rotationY",
- "rotationZ",
- "fov",
- "scale",
- "opacity",
- "openAngle",
- "x",
- "y",
- "rotation",
- "intensity",
- "distance",
- "range",
- "maxBlur"
- ],
- "type": "string"
- },
- "target": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "camera",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "layer",
- "type": "string"
- },
- "layerId": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "layerId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "environment",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "focus",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- }
- ]
- }
- },
- "required": [
- "target",
- "property",
- "keyframes"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "backdrop": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "transparent",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "kind": {
- "const": "solid",
- "type": "string"
- }
- },
- "required": [
- "kind",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "angle": {
- "default": 0,
- "type": "number"
- },
- "kind": {
- "const": "linear",
- "type": "string"
- },
- "stops": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- }
- },
- "required": [
- "at",
- "color"
- ],
- "type": "object"
- },
- "maxItems": 8,
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "stops"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "at": {
- "default": [
- 0.5,
- 0.5
- ],
- "items": false,
- "maxItems": 2,
- "minItems": 2,
- "prefixItems": [
- {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- ],
- "type": "array"
- },
- "kind": {
- "const": "radial",
- "type": "string"
- },
- "stops": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "at": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- }
- },
- "required": [
- "at",
- "color"
- ],
- "type": "object"
- },
- "maxItems": 8,
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "stops"
- ],
- "type": "object"
- }
- ],
- "default": {
- "kind": "transparent"
- }
- },
- "camera": {
- "additionalProperties": false,
- "properties": {
- "fov": {
- "maximum": 1.3962634015954636,
- "minimum": 0.3141592653589793,
- "type": "number"
- },
- "position": {
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- }
- },
- "type": "object"
- },
- "constraints": {
- "default": [],
- "items": {
- "additionalProperties": false,
- "properties": {
- "gap": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "kind": {
- "const": "minSeparation",
- "type": "string"
- },
- "objects": {
- "items": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "minItems": 2,
- "type": "array"
- }
- },
- "required": [
- "kind",
- "objects",
- "gap"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "environment": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "floorY": {
- "default": -420,
- "type": "number"
- },
- "intensity": {
- "default": 1,
- "minimum": 0,
- "type": "number"
- },
- "kind": {
- "const": "studio",
- "type": "string"
- },
- "lightingProfile": {
- "default": "studio",
- "enum": [
- "studio",
- "studio-edge"
- ],
- "type": "string"
- },
- "preset": {
- "default": "soft",
- "enum": [
- "soft",
- "key",
- "rim"
- ],
- "type": "string"
- },
- "shadowOpacity": {
- "default": 0.5,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "kind": {
- "const": "photographic-studio-v1",
- "type": "string"
- }
- },
- "required": [
- "kind"
- ],
- "type": "object"
- }
- ],
- "default": {
- "floorY": -420,
- "intensity": 1,
- "lightingProfile": "studio",
- "preset": "soft",
- "shadowOpacity": 0.5
- }
- },
- "layers": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "children": {
- "items": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "group",
- "type": "string"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "kind",
- "id",
- "children"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "laptop",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "openAngle": {
- "maximum": 3.141592653589793,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 4000,
- "minimum": 200,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "openAngle"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "phone",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 2000,
- "minimum": 80,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cornerRadius": {
- "default": 32,
- "minimum": 0,
- "type": "number"
- },
- "edgeRadius": {
- "default": 15,
- "minimum": 0,
- "type": "number"
- },
- "finish": {
- "default": "satin",
- "enum": [
- "satin",
- "brushed"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "slab",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "thickness": {
- "default": 32,
- "maximum": 200,
- "minimum": 4,
- "type": "number"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "backface": {
- "default": "hidden",
- "enum": [
- "hidden",
- "visible"
- ],
- "type": "string"
- },
- "depthWrite": {
- "default": true,
- "type": "boolean"
- },
- "fit": {
- "default": "contain",
- "enum": [
- "contain",
- "cover"
- ],
- "type": "string"
- },
- "height": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "page",
- "type": "string"
- },
- "materials": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "anisotropy": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "anisotropyRotation": {
- "type": "number"
- },
- "clearcoat": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "clearcoatRoughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "ior": {
- "maximum": 2.333,
- "minimum": 1,
- "type": "number"
- },
- "metalness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "reflectivity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "role": {
- "maxLength": 64,
- "minLength": 1,
- "type": "string"
- },
- "roughness": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "physical",
- "unlit"
- ],
- "type": "string"
- }
- },
- "required": [
- "role",
- "type"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "type": "array"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "surfaces": {
- "additionalProperties": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "assetSlot": {
- "description": "Image asset slot name bound by the clip assets map; never a URL.",
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z_][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "source": {
- "const": "image",
- "type": "string"
- }
- },
- "required": [
- "source",
- "assetSlot"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "source": {
- "const": "color",
- "type": "string"
- }
- },
- "required": [
- "source",
- "color"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "bakeScale": {
- "anyOf": [
- {
- "const": 2,
- "type": "number"
- },
- {
- "const": 3,
- "type": "number"
- }
- ],
- "description": "Optional authored scale. Preparation defaults omission to 2 and may auto-raise it to 3."
- },
- "captureFrame": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "component": {
- "additionalProperties": false,
- "properties": {
- "componentId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "sourceVersionId": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "version": {
- "const": 1,
- "type": "number"
- }
- },
- "required": [
- "version",
- "componentId",
- "sourceVersionId"
- ],
- "type": "object"
- },
- "layout": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "width": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "params": {
- "additionalProperties": {
- "$ref": "#/$defs/__schema0"
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "source": {
- "const": "component",
- "type": "string"
- }
- },
- "required": [
- "source",
- "component",
- "captureFrame",
- "layout"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "endFrame": {
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "mediaId": {
- "maxLength": 256,
- "minLength": 1,
- "type": "string"
- },
- "source": {
- "const": "video",
- "type": "string"
- },
- "startFrame": {
- "default": 0,
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "source",
- "mediaId"
- ],
- "type": "object"
- }
- ]
- },
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "transparency": {
- "default": "straight",
- "enum": [
- "straight",
- "premultiplied",
- "opaque"
- ],
- "type": "string"
- },
- "width": {
- "maximum": 8000,
- "minimum": 40,
- "type": "number"
- }
- },
- "required": [
- "kind",
- "id",
- "width",
- "height",
- "surfaces"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "space": {
- "const": "world",
- "type": "string"
- },
- "transform": {
- "additionalProperties": false,
- "default": {
- "position": [
- 0,
- 0,
- 0
- ],
- "rotation": [
- 0,
- 0,
- 0
- ],
- "scale": 1
- },
- "properties": {
- "position": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "rotation": {
- "default": [
- 0,
- 0,
- 0
- ],
- "items": false,
- "maxItems": 3,
- "minItems": 3,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "align": {
- "default": "center",
- "enum": [
- "left",
- "center",
- "right"
- ],
- "type": "string"
- },
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "fontFamily": {
- "anyOf": [
- {
- "maxLength": 128,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9 _.\\-]*$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:fonts.heading",
- "$brand:fonts.body",
- "$brand:fonts.caption"
- ],
- "type": "string"
- }
- ]
- },
- "fontSize": {
- "maximum": 800,
- "minimum": 8,
- "type": "number"
- },
- "fontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "id": {
- "maxLength": 64,
- "minLength": 1,
- "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
- "type": "string"
- },
- "kind": {
- "const": "text",
- "type": "string"
- },
- "letterSpacing": {
- "default": 0,
- "maximum": 40,
- "minimum": -20,
- "type": "number"
- },
- "lineHeight": {
- "default": 1.2,
- "maximum": 3,
- "minimum": 0.6,
- "type": "number"
- },
- "lines": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "runs": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "color": {
- "anyOf": [
- {
- "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
- "type": "string"
- },
- {
- "enum": [
- "$brand:colors.background",
- "$brand:colors.surface",
- "$brand:colors.text",
- "$brand:colors.textMuted",
- "$brand:colors.accent",
- "$brand:colors.accentStrong",
- "$brand:colors.accentSoft",
- "$brand:colors.success",
- "$brand:colors.warning",
- "$brand:colors.danger"
- ],
- "type": "string"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "text": {
- "maxLength": 512,
- "minLength": 1,
- "pattern": "^[^\\r\\n]+$",
- "type": "string"
- }
- },
- "required": [
- "text"
- ],
- "type": "object"
- },
- "maxItems": 16,
- "minItems": 1,
- "type": "array"
- }
- },
- "required": [
- "runs"
- ],
- "type": "object"
- },
- "maxItems": 24,
- "minItems": 1,
- "type": "array"
- },
- "maxWidth": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "opacity": {
- "default": 1,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "rotation": {
- "default": 0,
- "type": "number"
- },
- "scale": {
- "default": 1,
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "space": {
- "const": "screen",
- "type": "string"
- },
- "x": {
- "type": "number"
- },
- "y": {
- "type": "number"
- }
- },
- "required": [
- "id",
- "kind",
- "lines",
- "fontFamily",
- "fontWeight",
- "fontStyle",
- "fontSize",
- "color",
- "space",
- "x",
- "y"
- ],
- "type": "object"
- }
- ]
- },
- "minItems": 1,
- "type": "array"
- },
- "post": {
- "additionalProperties": false,
- "default": {
- "focus": null,
- "grain": 0,
- "vignette": 0
- },
- "properties": {
- "focus": {
- "anyOf": [
- {
- "additionalProperties": false,
- "properties": {
- "distance": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "maxBlur": {
- "maximum": 64,
- "minimum": 0,
- "type": "number"
- },
- "range": {
- "exclusiveMinimum": 0,
- "type": "number"
- }
- },
- "required": [
- "distance",
- "range",
- "maxBlur"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
- ],
- "default": null
- },
- "grain": {
- "default": 0,
- "maximum": 0.5,
- "minimum": 0,
- "type": "number"
- },
- "vignette": {
- "default": 0,
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "referenceSize": {
- "additionalProperties": false,
- "properties": {
- "height": {
- "maximum": 8192,
- "minimum": 16,
- "type": "integer"
- },
- "width": {
- "maximum": 8192,
- "minimum": 16,
- "type": "integer"
- }
- },
- "required": [
- "width",
- "height"
- ],
- "type": "object"
- },
- "version": {
- "const": 2,
- "type": "number"
- }
- },
- "required": [
- "version",
- "referenceSize",
- "layers"
- ],
- "type": "object"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- },
- "transitionIn": {
- "additionalProperties": false,
- "description": "Inter-scene transition.",
- "properties": {
- "duration": {
- "minimum": 0,
- "type": "number"
- },
- "type": {
- "enum": [
- "cut",
- "fade",
- "dissolve",
- "wipe"
- ],
- "type": "string"
- }
- },
- "required": [
- "type"
- ],
- "type": "object"
- },
- "type": {
- "const": "scene.update",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Add a clip to the timeline. The clip self-routes to a track by FAMILY (`clip.kind`, else derived from `source.kind`, else the target track) — a `media` clip MUST carry `kind` (video|audio|image) or a `trackId`, else it is rejected as ambiguous. `trackId` targets an existing SAME-family track; `newTrack:true` (with optional pinned `newTrackId`) creates a fresh track of that family.",
- "properties": {
- "clip": {
- "additionalProperties": false,
- "properties": {
- "animate": {
- "additionalProperties": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "easing": {
- "anyOf": [
- {
- "enum": [
- "linear",
- "ease",
- "easeIn",
- "easeOut",
- "easeInOut"
- ],
- "type": "string"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cubicBezier": {
- "items": false,
- "maxItems": 4,
- "minItems": 4,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- }
- },
- "required": [
- "cubicBezier"
- ],
- "type": "object"
- }
- ]
- },
- "time": {
- "minimum": 0,
- "type": "number"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "time",
- "value"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "description": "Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.",
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "captionVisibility": {
- "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
- "enum": [
- "visible",
- "hidden"
- ],
- "type": "string"
- },
- "duration": {
- "description": "Clip duration (seconds).",
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "effects": {
- "items": {
- "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/__schema1"
- },
- "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"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "type": "string"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "startTime",
- "duration"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "fit": {
- "enum": [
- "cover",
- "contain"
- ],
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "enum": [
- "video",
- "audio",
- "image",
- "overlay",
- "effect"
- ],
- "type": "string"
- },
- "linkGroupId": {
- "minLength": 1,
- "type": "string"
- },
- "opacity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "position": {
- "additionalProperties": false,
- "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
- "properties": {
- "x": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- },
- "y": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y"
- ],
- "type": "object"
- },
- "region": {
- "additionalProperties": false,
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "rotation": {
- "type": "number"
- },
- "scale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "source": {
- "anyOf": [
- {
- "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/__schema1"
- },
- "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/__schema1"
- },
- "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"
- }
- ]
- },
- "startTime": {
- "description": "Timeline start (seconds).",
- "minimum": 0,
- "type": "number"
- },
- "transitionIn": {
- "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/__schema1"
- },
- "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"
- },
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "fromClipId": {
- "minLength": 1,
- "type": "string"
- },
- "handlePolicy": {
- "const": "outgoing-overrun-at-cut-v1",
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "toClipId": {
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "type",
- "duration"
- ],
- "type": "object"
- }
- },
- "required": [
- "id",
- "startTime",
- "duration",
- "source"
- ],
- "type": "object"
- },
- "newTrack": {
- "type": "boolean"
- },
- "newTrackId": {
- "type": "string"
- },
- "trackId": {
- "type": "string"
- },
- "type": {
- "const": "clip.add",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clip"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Remove a clip by id (located across every track).",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "type": {
- "const": "clip.remove",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Patch an existing clip by id (cross-family). The patch is a partial TimelineClip. NOTE: `source` is REPLACED wholesale — the patch merges at the top level only, so a partial `source` WIPES the source fields you omit. Patch the whole source object when changing it. (To change reframe/excluded ranges, prefer setCropIntents / addExcludedRange, not a source patch.)",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "patch": {
- "additionalProperties": false,
- "properties": {
- "animate": {
- "additionalProperties": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "easing": {
- "anyOf": [
- {
- "enum": [
- "linear",
- "ease",
- "easeIn",
- "easeOut",
- "easeInOut"
- ],
- "type": "string"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cubicBezier": {
- "items": false,
- "maxItems": 4,
- "minItems": 4,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- }
- },
- "required": [
- "cubicBezier"
- ],
- "type": "object"
- }
- ]
- },
- "time": {
- "minimum": 0,
- "type": "number"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "time",
- "value"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "description": "Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.",
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "captionVisibility": {
- "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
- "enum": [
- "visible",
- "hidden"
- ],
- "type": "string"
- },
- "duration": {
- "description": "Clip duration (seconds).",
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "effects": {
- "items": {
- "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/__schema1"
- },
- "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"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "type": "string"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "startTime",
- "duration"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "fit": {
- "enum": [
- "cover",
- "contain"
- ],
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "enum": [
- "video",
- "audio",
- "image",
- "overlay",
- "effect"
- ],
- "type": "string"
- },
- "linkGroupId": {
- "minLength": 1,
- "type": "string"
- },
- "opacity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "position": {
- "additionalProperties": false,
- "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
- "properties": {
- "x": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- },
- "y": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y"
- ],
- "type": "object"
- },
- "region": {
- "additionalProperties": false,
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "rotation": {
- "type": "number"
- },
- "scale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "source": {
- "anyOf": [
- {
- "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/__schema1"
- },
- "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/__schema1"
- },
- "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"
- }
- ]
- },
- "startTime": {
- "description": "Timeline start (seconds).",
- "minimum": 0,
- "type": "number"
- },
- "transitionIn": {
- "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/__schema1"
- },
- "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"
- },
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "fromClipId": {
- "minLength": 1,
- "type": "string"
- },
- "handlePolicy": {
- "const": "outgoing-overrun-at-cut-v1",
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "toClipId": {
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "type",
- "duration"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": {
- "const": "clip.update",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "patch"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Remove EVERY clip sourced from a given mediaId (e.g. after deleting that media).",
- "properties": {
- "mediaId": {
- "type": "string"
- },
- "type": {
- "const": "removeClipsByMediaId",
- "type": "string"
- }
- },
- "required": [
- "type",
- "mediaId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Replace the overlay channel wholesale with the given clips (bulk set, not a merge).",
- "properties": {
- "clips": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "animate": {
- "additionalProperties": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "easing": {
- "anyOf": [
- {
- "enum": [
- "linear",
- "ease",
- "easeIn",
- "easeOut",
- "easeInOut"
- ],
- "type": "string"
- },
- {
- "additionalProperties": false,
- "properties": {
- "cubicBezier": {
- "items": false,
- "maxItems": 4,
- "minItems": 4,
- "prefixItems": [
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- },
- {
- "type": "number"
- }
- ],
- "type": "array"
- }
- },
- "required": [
- "cubicBezier"
- ],
- "type": "object"
- }
- ]
- },
- "time": {
- "minimum": 0,
- "type": "number"
- },
- "value": {
- "type": "number"
- }
- },
- "required": [
- "time",
- "value"
- ],
- "type": "object"
- },
- "minItems": 2,
- "type": "array"
- },
- "description": "Keyframe channels, clip-relative seconds. Each channel's values use the SAME unit as the scalar it animates: `opacity` 0 to 1, `scale` a multiplier (>0), `rotation` degrees, `position.x`/`position.y` a FRACTION of the frame like `position` (0.5 = centre; NOT pixels), `volume` 0 to 4.",
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "captionVisibility": {
- "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
- "enum": [
- "visible",
- "hidden"
- ],
- "type": "string"
- },
- "duration": {
- "description": "Clip duration (seconds).",
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "effects": {
- "items": {
- "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/__schema1"
- },
- "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"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "type": "string"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "startTime",
- "duration"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "fit": {
- "enum": [
- "cover",
- "contain"
- ],
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "enum": [
- "video",
- "audio",
- "image",
- "overlay",
- "effect"
- ],
- "type": "string"
- },
- "linkGroupId": {
- "minLength": 1,
- "type": "string"
- },
- "opacity": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "position": {
- "additionalProperties": false,
- "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
- "properties": {
- "x": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- },
- "y": {
- "maximum": 2,
- "minimum": -1,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y"
- ],
- "type": "object"
- },
- "region": {
- "additionalProperties": false,
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "rotation": {
- "type": "number"
- },
- "scale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "source": {
- "anyOf": [
- {
- "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/__schema1"
- },
- "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/__schema1"
- },
- "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"
- }
- ]
- },
- "startTime": {
- "description": "Timeline start (seconds).",
- "minimum": 0,
- "type": "number"
- },
- "transitionIn": {
- "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/__schema1"
- },
- "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"
- },
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "fromClipId": {
- "minLength": 1,
- "type": "string"
- },
- "handlePolicy": {
- "const": "outgoing-overrun-at-cut-v1",
- "type": "string"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "toClipId": {
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "type",
- "duration"
- ],
- "type": "object"
- }
- },
- "required": [
- "id",
- "startTime",
- "duration",
- "source"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "type": {
- "const": "loadOverlays",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clips"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Add a timeline marker (a named time point/range; carry extensions in `metadata`).",
- "properties": {
- "marker": {
- "additionalProperties": false,
- "properties": {
- "endTime": {
- "minimum": 0,
- "type": "number"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "minLength": 1,
- "type": "string"
- },
- "metadata": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "name": {
- "type": "string"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "id",
- "startTime",
- "kind"
- ],
- "type": "object"
- },
- "type": {
- "const": "addMarker",
- "type": "string"
- }
- },
- "required": [
- "type",
- "marker"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Remove a marker by id.",
- "properties": {
- "markerId": {
- "type": "string"
- },
- "type": {
- "const": "removeMarker",
- "type": "string"
- }
- },
- "required": [
- "type",
- "markerId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Patch a marker's fields by id (partial merge).",
- "properties": {
- "markerId": {
- "type": "string"
- },
- "type": {
- "const": "updateMarker",
- "type": "string"
- },
- "updates": {
- "additionalProperties": false,
- "properties": {
- "endTime": {
- "minimum": 0,
- "type": "number"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "kind": {
- "minLength": 1,
- "type": "string"
- },
- "metadata": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "name": {
- "type": "string"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "type",
- "markerId",
- "updates"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Set (or CLEAR, with `segments: null`) the camera/reframe channel on a MEDIA clip — the time-aligned source→output viewport (focus, zoom, ease, bias). This is the PREFERRED way to author reframing; do NOT reframe via a whole-source `clip.update` patch. Segments tile the clip's duration.",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "segments": {
- "anyOf": [
- {
- "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"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ]
- },
- "type": {
- "const": "setCropIntents",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "segments"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Set (or CLEAR, with `effects: []`) a clip's EFFECT channel — the registered effect primitives stacked onto that clip, each `{ primitiveId, params? }`. WHOLESALE: the array REPLACES the clip's current effects, so send the full stack (read the clip first to add one). This is the ONLY way to change effects on an existing clip — do NOT reach for a `clip.update` patch, whose top-level merge is the source-clobbering footgun documented above.",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "effects": {
- "items": {
- "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/__schema1"
- },
- "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"
- },
- "id": {
- "minLength": 1,
- "type": "string"
- },
- "params": {
- "additionalProperties": {},
- "propertyNames": {
- "type": "string"
- },
- "type": "object"
- },
- "primitiveId": {
- "minLength": 1,
- "type": "string"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "duration": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "startTime": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "startTime",
- "duration"
- ],
- "type": "object"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "type": {
- "const": "setEffects",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "effects"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Merge style overrides (font/color/position/emphasis) onto the composition's caption layer. Partial — omitted fields keep their current value; creates the caption container if absent.",
- "properties": {
- "style": {
- "additionalProperties": false,
- "properties": {
- "annotationColor": {
- "type": "string"
- },
- "annotationStrokeWidth": {
- "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
- "maximum": 12,
- "minimum": 0.5,
- "type": "number"
- },
- "annotationTexture": {
- "description": "Native annotation stroke finish; default clean.",
- "enum": [
- "clean",
- "pencil"
- ],
- "type": "string"
- },
- "backgroundColor": {
- "type": "string"
- },
- "color": {
- "minLength": 1,
- "type": "string"
- },
- "emphasisColor": {
- "type": "string"
- },
- "emphasisFontFamily": {
- "type": "string"
- },
- "emphasisFontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "emphasisFontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "emphasisGradient": {
- "type": "string"
- },
- "emphasisLetterSpacing": {
- "type": "number"
- },
- "emphasisPlate": {
- "type": "boolean"
- },
- "emphasisPlateAltColor": {
- "type": "string"
- },
- "emphasisPlateAltTextColor": {
- "type": "string"
- },
- "emphasisPlateColor": {
- "type": "string"
- },
- "emphasisPlatePadX": {
- "type": "number"
- },
- "emphasisPlatePadY": {
- "type": "number"
- },
- "emphasisPlateRadius": {
- "minimum": 0,
- "type": "number"
- },
- "emphasisPlateReveal": {
- "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
- "type": "boolean"
- },
- "emphasisPlateTextColor": {
- "type": "string"
- },
- "emphasisScale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "emphasisTextTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "entrance": {
- "enum": [
- "none",
- "fade",
- "word-pop",
- "stagger-up"
- ],
- "type": "string"
- },
- "entranceMs": {
- "minimum": 0,
- "type": "number"
- },
- "entranceStaggerMs": {
- "minimum": 0,
- "type": "number"
- },
- "exitMs": {
- "minimum": 0,
- "type": "number"
- },
- "fontFamily": {
- "minLength": 1,
- "type": "string"
- },
- "fontSize": {
- "description": "Font size as % of composition height (1-15, default 5). NOT px.",
- "maximum": 15,
- "minimum": 1,
- "type": "number"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "highlightColor": {
- "minLength": 1,
- "type": "string"
- },
- "letterSpacing": {
- "description": "Base caption glyph spacing in pixels.",
- "maximum": 20,
- "minimum": -5,
- "type": "number"
- },
- "lineGapEm": {
- "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- },
- "maxWidthPercent": {
- "exclusiveMinimum": 0,
- "maximum": 100,
- "type": "number"
- },
- "plate": {
- "enum": [
- "glass",
- "solid",
- "none"
- ],
- "type": "string"
- },
- "position": {
- "enum": [
- "top",
- "center",
- "bottom"
- ],
- "type": "string"
- },
- "region": {
- "additionalProperties": false,
- "description": "Optional caption layout box {x,y,w,h} in normalized output-frame coordinates. Overrides position; text starts at its top edge and wraps/pages within its width and height.",
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "textTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "wordGapEm": {
- "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": {
- "const": "setCaptionStyle",
- "type": "string"
- }
- },
- "required": [
- "type",
- "style"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Replace native caption placements without changing transcript words or timings. Each layout references a half-open word-index range in one saved segment; a one-word range is valid. region places that group independently, optional bounded scale/rotation/style changes its look, and holdThroughWordIndex keeps it visible through a later saved word in the same segment. All words in a placed range occupy one page; rendering refuses a range that cannot fit its box, so enlarge region or split the range. The box reserves horizontal space of 1.6 font sizes and vertical space of 0.8 font sizes for padding, with at most three lines. Unreferenced words keep the default caption layout. Word ranges must not overlap. Reapply after caption regeneration or timeline cuts.",
- "properties": {
- "layouts": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "holdThroughWordIndex": {
- "description": "Inclusive saved-word index in this segment. The layout stays visible until that word ends.",
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "region": {
- "additionalProperties": false,
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "rotation": {
- "maximum": 45,
- "minimum": -45,
- "type": "number"
- },
- "scale": {
- "maximum": 4,
- "minimum": 0.25,
- "type": "number"
- },
- "segmentIndex": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- "style": {
- "additionalProperties": false,
- "properties": {
- "annotationColor": {
- "type": "string"
- },
- "annotationStrokeWidth": {
- "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
- "maximum": 12,
- "minimum": 0.5,
- "type": "number"
- },
- "annotationTexture": {
- "description": "Native annotation stroke finish; default clean.",
- "enum": [
- "clean",
- "pencil"
- ],
- "type": "string"
- },
- "backgroundColor": {
- "type": "string"
- },
- "color": {
- "minLength": 1,
- "type": "string"
- },
- "emphasisColor": {
- "type": "string"
- },
- "emphasisFontFamily": {
- "type": "string"
- },
- "emphasisFontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "emphasisFontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "emphasisLetterSpacing": {
- "type": "number"
- },
- "emphasisPlate": {
- "type": "boolean"
- },
- "emphasisPlateAltColor": {
- "type": "string"
- },
- "emphasisPlateAltTextColor": {
- "type": "string"
- },
- "emphasisPlateColor": {
- "type": "string"
- },
- "emphasisPlatePadX": {
- "type": "number"
- },
- "emphasisPlatePadY": {
- "type": "number"
- },
- "emphasisPlateRadius": {
- "minimum": 0,
- "type": "number"
- },
- "emphasisPlateReveal": {
- "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
- "type": "boolean"
- },
- "emphasisPlateTextColor": {
- "type": "string"
- },
- "emphasisScale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "emphasisTextTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "entrance": {
- "enum": [
- "none",
- "fade",
- "word-pop",
- "stagger-up"
- ],
- "type": "string"
- },
- "entranceMs": {
- "minimum": 0,
- "type": "number"
- },
- "entranceStaggerMs": {
- "minimum": 0,
- "type": "number"
- },
- "exitMs": {
- "minimum": 0,
- "type": "number"
- },
- "fontFamily": {
- "minLength": 1,
- "type": "string"
- },
- "fontSize": {
- "description": "Font size as % of composition height (1-15, default 5). NOT px.",
- "maximum": 15,
- "minimum": 1,
- "type": "number"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "highlightColor": {
- "minLength": 1,
- "type": "string"
- },
- "letterSpacing": {
- "description": "Base caption glyph spacing in pixels.",
- "maximum": 20,
- "minimum": -5,
- "type": "number"
- },
- "lineGapEm": {
- "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- },
- "plate": {
- "enum": [
- "glass",
- "solid",
- "none"
- ],
- "type": "string"
- },
- "textTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "wordGapEm": {
- "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "wordEndIndex": {
- "description": "Exclusive word index in the saved caption segment.",
- "exclusiveMinimum": 0,
- "maximum": 9007199254740991,
- "type": "integer"
- },
- "wordMarks": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "annotate": {
- "anyOf": [
- {
- "enum": [
- "circle",
- "underline"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "emphasis": {
- "type": "boolean"
- },
- "wordIndex": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "wordIndex"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "wordStartIndex": {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- }
- },
- "required": [
- "segmentIndex",
- "wordStartIndex",
- "wordEndIndex",
- "region"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "type": {
- "const": "setCaptionLayouts",
- "type": "string"
- }
- },
- "required": [
- "type",
- "layouts"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Set the caption compositing plane. Use `behind-subject` to place captions behind the segmented foreground subject; use `front` for conventional captions above all video layers.",
- "properties": {
- "type": {
- "const": "setCaptionDepth",
- "type": "string"
- },
- "zPlane": {
- "enum": [
- "front",
- "behind-subject"
- ],
- "type": "string"
- }
- },
- "required": [
- "type",
- "zPlane"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Replace the caption SEGMENTS wholesale — author the word-timed caption layer directly (each segment = one sentence/page of `words` with timeline-ms `startMs`/`endMs`, optional `emphasis`). This is how a client with its OWN word timings (e.g. a generated VO take) gets word-synced captions without a source transcript; the compose lane's transcript slice writes the same layer. `style`, when given, merges with setCaptionStyle semantics; an omitted style keeps the existing one. Renderer paginates within a segment and never pools words across two — keep segments sentence-bounded.",
- "properties": {
- "segments": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "words": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "annotate": {
- "enum": [
- "circle",
- "underline"
- ],
- "type": "string"
- },
- "emphasis": {
- "type": "boolean"
- },
- "endMs": {
- "description": "Word end on the composition timeline, in milliseconds.",
- "minimum": 0,
- "type": "number"
- },
- "startMs": {
- "description": "Word start on the composition timeline, in milliseconds.",
- "minimum": 0,
- "type": "number"
- },
- "text": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "text",
- "startMs",
- "endMs"
- ],
- "type": "object"
- },
- "type": "array"
- }
- },
- "required": [
- "words"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "style": {
- "additionalProperties": false,
- "properties": {
- "annotationColor": {
- "type": "string"
- },
- "annotationStrokeWidth": {
- "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
- "maximum": 12,
- "minimum": 0.5,
- "type": "number"
- },
- "annotationTexture": {
- "description": "Native annotation stroke finish; default clean.",
- "enum": [
- "clean",
- "pencil"
- ],
- "type": "string"
- },
- "backgroundColor": {
- "type": "string"
- },
- "color": {
- "minLength": 1,
- "type": "string"
- },
- "emphasisColor": {
- "type": "string"
- },
- "emphasisFontFamily": {
- "type": "string"
- },
- "emphasisFontStyle": {
- "enum": [
- "normal",
- "italic"
- ],
- "type": "string"
- },
- "emphasisFontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "emphasisGradient": {
- "type": "string"
- },
- "emphasisLetterSpacing": {
- "type": "number"
- },
- "emphasisPlate": {
- "type": "boolean"
- },
- "emphasisPlateAltColor": {
- "type": "string"
- },
- "emphasisPlateAltTextColor": {
- "type": "string"
- },
- "emphasisPlateColor": {
- "type": "string"
- },
- "emphasisPlatePadX": {
- "type": "number"
- },
- "emphasisPlatePadY": {
- "type": "number"
- },
- "emphasisPlateRadius": {
- "minimum": 0,
- "type": "number"
- },
- "emphasisPlateReveal": {
- "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
- "type": "boolean"
- },
- "emphasisPlateTextColor": {
- "type": "string"
- },
- "emphasisScale": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "emphasisTextTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "entrance": {
- "enum": [
- "none",
- "fade",
- "word-pop",
- "stagger-up"
- ],
- "type": "string"
- },
- "entranceMs": {
- "minimum": 0,
- "type": "number"
- },
- "entranceStaggerMs": {
- "minimum": 0,
- "type": "number"
- },
- "exitMs": {
- "minimum": 0,
- "type": "number"
- },
- "fontFamily": {
- "minLength": 1,
- "type": "string"
- },
- "fontSize": {
- "description": "Font size as % of composition height (1-15, default 5). NOT px.",
- "maximum": 15,
- "minimum": 1,
- "type": "number"
- },
- "fontWeight": {
- "maximum": 900,
- "minimum": 100,
- "type": "integer"
- },
- "highlightColor": {
- "minLength": 1,
- "type": "string"
- },
- "letterSpacing": {
- "description": "Base caption glyph spacing in pixels.",
- "maximum": 20,
- "minimum": -5,
- "type": "number"
- },
- "lineGapEm": {
- "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- },
- "maxWidthPercent": {
- "exclusiveMinimum": 0,
- "maximum": 100,
- "type": "number"
- },
- "plate": {
- "enum": [
- "glass",
- "solid",
- "none"
- ],
- "type": "string"
- },
- "position": {
- "enum": [
- "top",
- "center",
- "bottom"
- ],
- "type": "string"
- },
- "region": {
- "additionalProperties": false,
- "description": "Optional caption layout box {x,y,w,h} in normalized output-frame coordinates. Overrides position; text starts at its top edge and wraps/pages within its width and height.",
- "properties": {
- "h": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "w": {
- "exclusiveMinimum": 0,
- "maximum": 1,
- "type": "number"
- },
- "x": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- },
- "y": {
- "maximum": 1,
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "x",
- "y",
- "w",
- "h"
- ],
- "type": "object"
- },
- "textTransform": {
- "enum": [
- "none",
- "uppercase",
- "capitalize"
- ],
- "type": "string"
- },
- "wordGapEm": {
- "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
- "maximum": 2,
- "minimum": 0,
- "type": "number"
- }
- },
- "type": "object"
- },
- "type": {
- "const": "setCaptions",
- "type": "string"
- }
- },
- "required": [
- "type",
- "segments"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Attach caption CONTENT from the media's cached transcript — no pasting words. ROUTE-MATERIALIZED like applyMotionPreset/materializeGrid: the server slices the word-timed transcript to `window` (source seconds; absent = the whole media), rebases times, sentence-splits into segments, and applies it as `setCaptions`. 422 media_no_transcript when the media has no transcript or no words in the window. For your OWN word timings use setCaptions directly. For edited multi-clip timelines, use captions.fromComposition after saving the edits; that operation projects all selected track clips, trims, exclusions, and placements.",
- "properties": {
- "mediaId": {
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "captions.fromTranscript",
- "type": "string"
- },
- "window": {
- "additionalProperties": false,
- "properties": {
- "endSec": {
- "exclusiveMinimum": 0,
- "type": "number"
- },
- "startSec": {
- "minimum": 0,
- "type": "number"
- }
- },
- "required": [
- "startSec",
- "endSec"
- ],
- "type": "object"
- }
- },
- "required": [
- "type",
- "mediaId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Snapshot word-timed captions from the SAVED edits on one explicit enabled video or audio track. The host reads each source media transcript, projects words through clip trim, excluded ranges and placement, then replaces the caption segments. This is route-materialized to setCaptions; call it AFTER persisting clip edits and call it again when those edits change. The existing caption style and depth are preserved. Missing transcripts, unsupported clips, inconsistent clip durations, and overlapping audible clips fail loud. Playback rate scales source word times and playable duration on both audio and video tracks.",
- "properties": {
- "trackId": {
- "minLength": 1,
- "type": "string"
- },
- "type": {
- "const": "captions.fromComposition",
- "type": "string"
- }
- },
- "required": [
- "type",
- "trackId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Shell a STATIC `card` clip with a frame-driven MOTION preset — the public card-shelling op (the layout renders VERBATIM; only the container animates in/out). The server wraps the card in the chosen `preset` (fade-up / slide-in-left / slide-in-right / scale-pop / stagger-reveal), transpiles it, mints it as a LIVE component, and swaps the clip source to that component (the bakeless live lane — no box). `params` tunes timing (`enterMs`/`exitMs`, `staggerMs` for stagger-reveal). The target must be a static card (components already carry motion; library overlays already move); re-run overwrites idempotently ONLY while the target is still a card (an uncompilable shell); once shelled, the clip is a COMPONENT — to change its motion, remove and re-add the card, then re-shell. Honored under `dry_run` (validates preset + target without transpiling or persisting). ORDERING: the preset resolves its target against the PERSISTED composition — a card added in the SAME batch is not yet visible to it. Persist the clip.add batch first, then shell in a following call.",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "params": {
- "additionalProperties": false,
- "properties": {
- "enterMs": {
- "type": "number"
- },
- "exitMs": {
- "type": "number"
- },
- "staggerMs": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "preset": {
- "type": "string"
- },
- "type": {
- "const": "applyMotionPreset",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "preset"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Materialize a clip's SOURCE-media temporal GRID as timeline markers — the rhythm authority you cut to. `grid:\"beat\"` reads a MUSIC bed's beat map (get_media_context.beatGrid), `grid:\"word\"` the VO word onsets (wordGrid); each grid point is projected from media time to TIMELINE time through the clip's placement (startTime, trim, playbackRate, excludedRanges) and written as a `kind:\"beat\"|\"word\"` marker (`metadata.sourceClipId` set). Points outside the clip's visible window are skipped. Re-running REPLACES the prior markers from the same clip+grid (idempotent). Land cuts and transition MIDPOINTS on the markers (a 0.5s transition starts 0.25s before its marker). `maxMarkers` (default 500, ceiling 2000) — exceeding it fails loud with the count. `grid:\"shot\"` is not yet exposed (shot_grid_unavailable). The target must be a media clip; absent evidence fails loud (grid_unavailable) naming how to get it (declare audioRole:\"music\" at ingest / transcribe).",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "grid": {
- "enum": [
- "beat",
- "word",
- "shot"
- ],
- "type": "string"
- },
- "maxMarkers": {
- "exclusiveMinimum": 0,
- "maximum": 2000,
- "type": "integer"
- },
- "type": {
- "const": "materializeGrid",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "grid"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Set the output format — `aspectRatio` (16:9|9:16|1:1|4:5) plus optional `fps` and `resolution`. Merges: an omitted field keeps the current value.",
- "properties": {
- "format": {
- "additionalProperties": false,
- "properties": {
- "aspectRatio": {
- "enum": [
- "16:9",
- "9:16",
- "1:1",
- "4:5"
- ],
- "type": "string"
- },
- "fps": {
- "anyOf": [
- {
- "const": 24,
- "type": "number"
- },
- {
- "const": 25,
- "type": "number"
- },
- {
- "const": 30,
- "type": "number"
- },
- {
- "const": 60,
- "type": "number"
- }
- ]
- },
- "resolution": {
- "enum": [
- "hd",
- "fhd",
- "4k"
- ],
- "type": "string"
- }
- },
- "required": [
- "aspectRatio"
- ],
- "type": "object"
- },
- "type": {
- "const": "setFormat",
- "type": "string"
- }
- },
- "required": [
- "type",
- "format"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Add an EMPTY track of a given family (video|audio|image|overlay|effect). Optional pinned `id`. The new track is appended, so it starts at the BACK: index 0 is the top layer and higher indices are further back (see `reorderTracks`). Track order only ranks clips on the same plane — every overlay draws above the video lane unless its `zPlane` is `behind-subject`, whatever its track index.",
- "properties": {
- "id": {
- "type": "string"
- },
- "kind": {
- "enum": [
- "video",
- "audio",
- "image",
- "overlay",
- "effect"
- ],
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "type": {
- "const": "addTrack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "kind"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Remove a track AND all its clips by id.",
- "properties": {
- "trackId": {
- "type": "string"
- },
- "type": {
- "const": "removeTrack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "trackId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Patch a track's `name` / `enabled` by id.",
- "properties": {
- "trackId": {
- "type": "string"
- },
- "type": {
- "const": "updateTrack",
- "type": "string"
- },
- "updates": {
- "additionalProperties": false,
- "properties": {
- "enabled": {
- "type": "boolean"
- },
- "name": {
- "type": "string"
- }
- },
- "type": "object"
- }
- },
- "required": [
- "type",
- "trackId",
- "updates"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Move a track from one index to another. ORDER: index 0 is the TOP layer, not the bottom — moving a backdrop to index 0 puts it in FRONT of everything and hides the composition. Higher index = further back. PRECEDENCE: track order decides compositing only among clips on the same plane. Overlays are composited in a lane ABOVE the video lane whatever their track index; the one exception is `zPlane:\"behind-subject\"`, which moves the overlay inside its host clip, behind the segmented foreground. So if reordering tracks does not change what you see, the plane split already decided it.",
- "properties": {
- "fromIndex": {
- "type": "number"
- },
- "toIndex": {
- "type": "number"
- },
- "type": {
- "const": "reorderTracks",
- "type": "string"
- }
- },
- "required": [
- "type",
- "fromIndex",
- "toIndex"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Move a clip to another SAME-family track, optionally at a new `newStartTime`.",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "newStartTime": {
- "type": "number"
- },
- "targetTrackId": {
- "type": "string"
- },
- "type": {
- "const": "moveClipToTrack",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "targetTrackId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Duplicate a clip by id. Pin `newClipId` to make the copy's id deterministic (required for a clean undo/inverse).",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "newClipId": {
- "type": "string"
- },
- "type": {
- "const": "duplicateClip",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Server-authoritative: delete the [start,end] time window (seconds) and ripple every downstream clip/marker/caption earlier to close the gap.",
- "properties": {
- "end": {
- "type": "number"
- },
- "start": {
- "type": "number"
- },
- "type": {
- "const": "cutAndRipple",
- "type": "string"
- }
- },
- "required": [
- "type",
- "start",
- "end"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Server-authoritative: shift everything at/after `time` (seconds) by `amount` seconds (+ opens a gap, − closes one).",
- "properties": {
- "amount": {
- "type": "number"
- },
- "time": {
- "type": "number"
- },
- "type": {
- "const": "ripple",
- "type": "string"
- }
- },
- "required": [
- "type",
- "time",
- "amount"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Server-authoritative: exclude a [sourceStart,sourceEnd] span (seconds) of a clip's SOURCE (an internal trim) and ripple downstream — the preferred way to drop a sub-range vs a source patch.",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "sourceEnd": {
- "type": "number"
- },
- "sourceStart": {
- "type": "number"
- },
- "type": {
- "const": "addExcludedRange",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "sourceStart",
- "sourceEnd"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Server-authoritative: remove a clip's previously-added excluded range by index (re-includes that span, ripples downstream).",
- "properties": {
- "clipId": {
- "type": "string"
- },
- "rangeIdx": {
- "type": "number"
- },
- "type": {
- "const": "removeExcludedRange",
- "type": "string"
- }
- },
- "required": [
- "type",
- "clipId",
- "rangeIdx"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "Atomically repin explicit version3 invocations using complete before/after execution references and an exact composition etag. Persistence must canonically admit scoped source hashes, destination input schemas and every resulting target context before applying, including replay/undo. Never infer a latest head, downgrade versions or accept an admitted flag.",
- "properties": {
- "changes": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "after": {
- "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/__schema1"
- },
- "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"
- },
- "before": {
- "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/__schema1"
- },
- "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"
- },
- "placementId": {
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "placementId",
- "before",
- "after"
- ],
- "type": "object"
- },
- "maxItems": 512,
- "minItems": 1,
- "type": "array"
- },
- "componentId": {
- "minLength": 1,
- "type": "string"
- },
- "expectedCompositionEtag": {
- "minLength": 1,
- "type": "string"
- },
- "from": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "to": {
- "pattern": "^[a-f0-9]{64}$",
- "type": "string"
- },
- "type": {
- "const": "component.repin-v3",
- "type": "string"
- }
- },
- "required": [
- "type",
- "componentId",
- "from",
- "to",
- "expectedCompositionEtag",
- "changes"
- ],
- "type": "object"
- }
-]
addedInput schema / properties / body / properties / ops / items / oneOf
Added value: +[
+ {
+ "additionalProperties": false,
+ "description": "Add a clip to the timeline. The clip self-routes to a track by FAMILY (`clip.kind`, else derived from `source.kind`, else the target track) — a `media` clip MUST carry `kind` (video|audio|image) or a `trackId`, else it is rejected as ambiguous. `trackId` targets an existing SAME-family track; `newTrack:true` (with optional pinned `newTrackId`) creates a fresh track of that family.",
+ "properties": {
+ "clip": {
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "additionalProperties": false,
+ "properties": {
+ "lanes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "points": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "t": {
+ "type": "number"
+ },
+ "v": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "t",
+ "v"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ "target": {
+ "const": "volume",
+ "type": "string"
+ }
+ },
+ "required": [
+ "target",
+ "points"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "version": {
+ "const": 1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "lanes"
+ ],
+ "type": "object"
+ },
+ "captionVisibility": {
+ "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
+ "enum": [
+ "visible",
+ "hidden"
+ ],
+ "type": "string"
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "effects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "params": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startTime",
+ "duration"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fit": {
+ "enum": [
+ "cover",
+ "contain"
+ ],
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "video",
+ "audio",
+ "image",
+ "overlay",
+ "effect"
+ ],
+ "type": "string"
+ },
+ "legacyKeyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "needsUpgrade": {
+ "const": true,
+ "type": "boolean"
+ },
+ "record": {}
+ },
+ "required": [
+ "needsUpgrade",
+ "channels",
+ "record"
+ ],
+ "type": "object"
+ },
+ "linkGroupId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "opacity": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "additionalProperties": {},
+ "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
+ "properties": {
+ "x": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "region": {
+ "additionalProperties": {},
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "rotation": {
+ "type": "number"
+ },
+ "scale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "source": {
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "properties": {
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "offsetMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clipId",
+ "offsetMs"
+ ],
+ "type": "object"
+ },
+ "audioRole": {
+ "enum": [
+ "sfx",
+ "music",
+ "vo",
+ "ambience"
+ ],
+ "type": "string"
+ },
+ "duck": {
+ "additionalProperties": {},
+ "properties": {
+ "attackMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "duckDb": {
+ "maximum": 0,
+ "type": "number"
+ },
+ "releaseMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "windows": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "endMs": {
+ "type": "number"
+ },
+ "startMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "startMs",
+ "endMs"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "duckDb",
+ "attackMs",
+ "releaseMs"
+ ],
+ "type": "object"
+ },
+ "excludedRanges": {
+ "items": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "segments": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "bias": {
+ "additionalProperties": {},
+ "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": {},
+ "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": {
+ "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.",
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "frame-center",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "faceId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "mode": {
+ "const": "face",
+ "type": "string"
+ },
+ "shotScale": {
+ "enum": [
+ "close",
+ "standard",
+ "wide"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "faceId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "all-faces",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "active-speaker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "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": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "kind",
+ "slots"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "props": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "retired": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "componentId",
+ "props"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {},
+ "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": {},
+ "properties": {
+ "html": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "card",
+ "type": "string"
+ },
+ "tokens": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind",
+ "compositionId"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "transitionIn": {
+ "additionalProperties": {},
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "fromClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "handlePolicy": {
+ "const": "outgoing-overrun-at-cut-v1",
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "toClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "duration"
+ ],
+ "type": "object"
+ },
+ "tweens": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "keyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "easeEach": {
+ "const": "none",
+ "type": "string"
+ },
+ "format": {
+ "const": "percentage",
+ "type": "string"
+ },
+ "keyframes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ease": {
+ "type": "string"
+ },
+ "percentage": {
+ "type": "number"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "percentage",
+ "properties"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "format",
+ "easeEach",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "position": {
+ "type": "number"
+ },
+ "propertyGroup": {
+ "enum": [
+ "visual",
+ "scale",
+ "rotation",
+ "position"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "propertyGroup",
+ "position",
+ "duration",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "startTime",
+ "duration",
+ "source"
+ ],
+ "type": "object"
+ },
+ "newTrack": {
+ "type": "boolean"
+ },
+ "newTrackId": {
+ "type": "string"
+ },
+ "trackId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "clip.add",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clip"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Remove a clip by id (located across every track).",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "clip.remove",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Set (or CLEAR, with `keyframes: null`) ONE keyframed channel of a clip: `opacity`, `scale`, `rotation`, `position.x`, `position.y` or `volume`, with at least two keyframes `{time, value, ease?}` in any order. `time` is seconds from the clip's own start (0 to its duration); `value` uses the property's own unit, as its scalar: opacity 0-1, scale a multiplier, rotation degrees, position.x/position.y a FRACTION of the frame (0.5 = centre, never px), volume 0-4. Each keyframe's optional `ease` shapes the segment ARRIVING at it, in HyperFrames' vocabulary: `none` (linear, the default), named eases such as `power2.out`, `back.out`, `expo.inOut`, `spring-gentle`, `hold`, or `custom(M0,0 Cx1,y1 x2,y2 1,1)` (a cubic, x in [0,1]). Before its first keyframe a channel holds its first value, after its last it holds the last; a channel OVERRIDES the clip's scalar (`opacity`, `scale`, `rotation`, `position`). The op REPLACES that property's keyframes; other channels are untouched. Volume keyframes are linear and only for a video or audio media clip. Trims and splits keep every keyframe on its content. Keyframes are stored as HyperFrames tweens (`tweens`) and automation (`automation`) on the clip; author them with this op, not `clip.update`.",
+ "properties": {
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "keyframes": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ease": {
+ "type": "string"
+ },
+ "time": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "time",
+ "value"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "property": {
+ "enum": [
+ "opacity",
+ "scale",
+ "rotation",
+ "position.x",
+ "position.y",
+ "volume"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "const": "clip.setKeyframes",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "property",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Patch an existing clip by id (cross-family). The patch is a partial TimelineClip. NOTE: `source` is REPLACED wholesale — the patch merges at the top level only, so a partial `source` WIPES the source fields you omit. Patch the whole source object when changing it. (To change reframe/excluded ranges, prefer setCropIntents / addExcludedRange, not a source patch.)",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "patch": {
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "additionalProperties": false,
+ "properties": {
+ "lanes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "points": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "t": {
+ "type": "number"
+ },
+ "v": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "t",
+ "v"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ "target": {
+ "const": "volume",
+ "type": "string"
+ }
+ },
+ "required": [
+ "target",
+ "points"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "version": {
+ "const": 1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "lanes"
+ ],
+ "type": "object"
+ },
+ "captionVisibility": {
+ "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
+ "enum": [
+ "visible",
+ "hidden"
+ ],
+ "type": "string"
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "effects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "params": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startTime",
+ "duration"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fit": {
+ "enum": [
+ "cover",
+ "contain"
+ ],
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "video",
+ "audio",
+ "image",
+ "overlay",
+ "effect"
+ ],
+ "type": "string"
+ },
+ "legacyKeyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "needsUpgrade": {
+ "const": true,
+ "type": "boolean"
+ },
+ "record": {}
+ },
+ "required": [
+ "needsUpgrade",
+ "channels",
+ "record"
+ ],
+ "type": "object"
+ },
+ "linkGroupId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "opacity": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "additionalProperties": {},
+ "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
+ "properties": {
+ "x": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "region": {
+ "additionalProperties": {},
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "rotation": {
+ "type": "number"
+ },
+ "scale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "source": {
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "properties": {
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "offsetMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clipId",
+ "offsetMs"
+ ],
+ "type": "object"
+ },
+ "audioRole": {
+ "enum": [
+ "sfx",
+ "music",
+ "vo",
+ "ambience"
+ ],
+ "type": "string"
+ },
+ "duck": {
+ "additionalProperties": {},
+ "properties": {
+ "attackMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "duckDb": {
+ "maximum": 0,
+ "type": "number"
+ },
+ "releaseMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "windows": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "endMs": {
+ "type": "number"
+ },
+ "startMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "startMs",
+ "endMs"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "duckDb",
+ "attackMs",
+ "releaseMs"
+ ],
+ "type": "object"
+ },
+ "excludedRanges": {
+ "items": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "segments": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "bias": {
+ "additionalProperties": {},
+ "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": {},
+ "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": {
+ "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.",
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "frame-center",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "faceId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "mode": {
+ "const": "face",
+ "type": "string"
+ },
+ "shotScale": {
+ "enum": [
+ "close",
+ "standard",
+ "wide"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "faceId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "all-faces",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "active-speaker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "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": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "kind",
+ "slots"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "props": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "retired": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "componentId",
+ "props"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {},
+ "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": {},
+ "properties": {
+ "html": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "card",
+ "type": "string"
+ },
+ "tokens": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind",
+ "compositionId"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "transitionIn": {
+ "additionalProperties": {},
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "fromClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "handlePolicy": {
+ "const": "outgoing-overrun-at-cut-v1",
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "toClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "duration"
+ ],
+ "type": "object"
+ },
+ "tweens": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "keyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "easeEach": {
+ "const": "none",
+ "type": "string"
+ },
+ "format": {
+ "const": "percentage",
+ "type": "string"
+ },
+ "keyframes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ease": {
+ "type": "string"
+ },
+ "percentage": {
+ "type": "number"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "percentage",
+ "properties"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "format",
+ "easeEach",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "position": {
+ "type": "number"
+ },
+ "propertyGroup": {
+ "enum": [
+ "visual",
+ "scale",
+ "rotation",
+ "position"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "propertyGroup",
+ "position",
+ "duration",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "const": "clip.update",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "patch"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Remove EVERY clip sourced from a given mediaId (e.g. after deleting that media).",
+ "properties": {
+ "mediaId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "removeClipsByMediaId",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "mediaId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Replace the overlay channel wholesale with the given clips (bulk set, not a merge).",
+ "properties": {
+ "clips": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "automation": {
+ "additionalProperties": false,
+ "properties": {
+ "lanes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "points": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "t": {
+ "type": "number"
+ },
+ "v": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "t",
+ "v"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ },
+ "target": {
+ "const": "volume",
+ "type": "string"
+ }
+ },
+ "required": [
+ "target",
+ "points"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "version": {
+ "const": 1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "lanes"
+ ],
+ "type": "object"
+ },
+ "captionVisibility": {
+ "description": "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over.",
+ "enum": [
+ "visible",
+ "hidden"
+ ],
+ "type": "string"
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "effects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "params": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startTime",
+ "duration"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fit": {
+ "enum": [
+ "cover",
+ "contain"
+ ],
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "video",
+ "audio",
+ "image",
+ "overlay",
+ "effect"
+ ],
+ "type": "string"
+ },
+ "legacyKeyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "channels": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "needsUpgrade": {
+ "const": true,
+ "type": "boolean"
+ },
+ "record": {}
+ },
+ "required": [
+ "needsUpgrade",
+ "channels",
+ "record"
+ ],
+ "type": "object"
+ },
+ "linkGroupId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "opacity": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "position": {
+ "additionalProperties": {},
+ "description": "Clip CENTRE as a fraction of the frame: {x:0.5,y:0.5} is dead centre, 0 to 1 is inside the frame, and a little overshoot (down to -1, up to 2) is how an entrance starts off-canvas. NOT pixels: the renderer maps x to `left: x*100%`, so `x: 180` sits 180 frame-widths away and draws nothing.",
+ "properties": {
+ "x": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 2,
+ "minimum": -1,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y"
+ ],
+ "type": "object"
+ },
+ "region": {
+ "additionalProperties": {},
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "rotation": {
+ "type": "number"
+ },
+ "scale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "source": {
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "properties": {
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "offsetMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "clipId",
+ "offsetMs"
+ ],
+ "type": "object"
+ },
+ "audioRole": {
+ "enum": [
+ "sfx",
+ "music",
+ "vo",
+ "ambience"
+ ],
+ "type": "string"
+ },
+ "duck": {
+ "additionalProperties": {},
+ "properties": {
+ "attackMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "duckDb": {
+ "maximum": 0,
+ "type": "number"
+ },
+ "releaseMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "windows": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "endMs": {
+ "type": "number"
+ },
+ "startMs": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "startMs",
+ "endMs"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "duckDb",
+ "attackMs",
+ "releaseMs"
+ ],
+ "type": "object"
+ },
+ "excludedRanges": {
+ "items": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "segments": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "bias": {
+ "additionalProperties": {},
+ "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": {},
+ "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": {
+ "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.",
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "frame-center",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "faceId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "mode": {
+ "const": "face",
+ "type": "string"
+ },
+ "shotScale": {
+ "enum": [
+ "close",
+ "standard",
+ "wide"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "faceId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "all-faces",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "active-speaker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "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": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "version": {
+ "const": 3,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "kind",
+ "slots"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "props": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "retired": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "componentId",
+ "props"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "anchor": {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {},
+ "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": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {},
+ "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": {},
+ "properties": {
+ "html": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "const": "card",
+ "type": "string"
+ },
+ "tokens": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "properties": {},
+ "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": {},
+ "properties": {
+ "end": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "start": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "kind",
+ "compositionId"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "transitionIn": {
+ "additionalProperties": {},
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "fromClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "handlePolicy": {
+ "const": "outgoing-overrun-at-cut-v1",
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "toClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "duration"
+ ],
+ "type": "object"
+ },
+ "tweens": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "keyframes": {
+ "additionalProperties": false,
+ "properties": {
+ "easeEach": {
+ "const": "none",
+ "type": "string"
+ },
+ "format": {
+ "const": "percentage",
+ "type": "string"
+ },
+ "keyframes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "ease": {
+ "type": "string"
+ },
+ "percentage": {
+ "type": "number"
+ },
+ "properties": {
+ "additionalProperties": {
+ "type": "number"
+ },
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "percentage",
+ "properties"
+ ],
+ "type": "object"
+ },
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "format",
+ "easeEach",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "position": {
+ "type": "number"
+ },
+ "propertyGroup": {
+ "enum": [
+ "visual",
+ "scale",
+ "rotation",
+ "position"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "id",
+ "propertyGroup",
+ "position",
+ "duration",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "startTime",
+ "duration",
+ "source"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "loadOverlays",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clips"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Add a timeline marker (a named time point/range; carry extensions in `metadata`).",
+ "properties": {
+ "marker": {
+ "additionalProperties": false,
+ "properties": {
+ "endTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "metadata": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "id",
+ "startTime",
+ "kind"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "addMarker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "marker"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Remove a marker by id.",
+ "properties": {
+ "markerId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "removeMarker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "markerId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Patch a marker's fields by id (partial merge).",
+ "properties": {
+ "markerId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "updateMarker",
+ "type": "string"
+ },
+ "updates": {
+ "additionalProperties": false,
+ "properties": {
+ "endTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "kind": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "metadata": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "type",
+ "markerId",
+ "updates"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Set (or CLEAR, with `segments: null`) the camera/reframe channel on a MEDIA clip — the time-aligned source→output viewport (focus, zoom, ease, bias). This is the PREFERRED way to author reframing; do NOT reframe via a whole-source `clip.update` patch. Segments tile the clip's duration.",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "segments": {
+ "anyOf": [
+ {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "bias": {
+ "additionalProperties": {},
+ "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": {},
+ "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": {
+ "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.",
+ "oneOf": [
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "frame-center",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "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": {},
+ "properties": {
+ "faceId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "mode": {
+ "const": "face",
+ "type": "string"
+ },
+ "shotScale": {
+ "enum": [
+ "close",
+ "standard",
+ "wide"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode",
+ "faceId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "all-faces",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": {},
+ "properties": {
+ "mode": {
+ "const": "active-speaker",
+ "type": "string"
+ }
+ },
+ "required": [
+ "mode"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "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"
+ },
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": {
+ "const": "setCropIntents",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "segments"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Set (or CLEAR, with `effects: []`) a clip's EFFECT channel — the pinned component clip wrappers stacked onto that clip, each `{id, component, window}`: a unique `id`, the wrapper component's execution pin as `component`, and `window: {startTime, duration}` in seconds. The built-in primitive effects were removed: a stored one reads, and save and render refuse it (`effect_retired`), so clear it with `effects: []`. WHOLESALE: the array REPLACES the clip's current effects, so send the full stack (read the clip first to add one). This is the ONLY way to change effects on an existing clip — do NOT reach for a `clip.update` patch, whose top-level merge is the source-clobbering footgun documented above.",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "effects": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "params": {
+ "additionalProperties": {},
+ "properties": {},
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "primitiveId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startTime",
+ "duration"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "setEffects",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "effects"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Merge style overrides (font/color/position/emphasis) onto the composition's caption layer. Partial — omitted fields keep their current value; creates the caption container if absent.",
+ "properties": {
+ "style": {
+ "additionalProperties": {},
+ "properties": {
+ "annotationColor": {
+ "type": "string"
+ },
+ "annotationStrokeWidth": {
+ "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
+ "maximum": 12,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "annotationTexture": {
+ "description": "Native annotation stroke finish; default clean.",
+ "enum": [
+ "clean",
+ "pencil"
+ ],
+ "type": "string"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "color": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "emphasisColor": {
+ "type": "string"
+ },
+ "emphasisFontFamily": {
+ "type": "string"
+ },
+ "emphasisFontStyle": {
+ "enum": [
+ "normal",
+ "italic"
+ ],
+ "type": "string"
+ },
+ "emphasisFontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "emphasisGradient": {
+ "type": "string"
+ },
+ "emphasisLetterSpacing": {
+ "type": "number"
+ },
+ "emphasisPlate": {
+ "type": "boolean"
+ },
+ "emphasisPlateAltColor": {
+ "type": "string"
+ },
+ "emphasisPlateAltTextColor": {
+ "type": "string"
+ },
+ "emphasisPlateColor": {
+ "type": "string"
+ },
+ "emphasisPlatePadX": {
+ "type": "number"
+ },
+ "emphasisPlatePadY": {
+ "type": "number"
+ },
+ "emphasisPlateRadius": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "emphasisPlateReveal": {
+ "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
+ "type": "boolean"
+ },
+ "emphasisPlateTextColor": {
+ "type": "string"
+ },
+ "emphasisScale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "emphasisTextTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "entrance": {
+ "enum": [
+ "none",
+ "fade",
+ "word-pop",
+ "stagger-up"
+ ],
+ "type": "string"
+ },
+ "entranceMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "entranceStaggerMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "exitMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fontFamily": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fontSize": {
+ "description": "Font size as % of composition height (1-15, default 5). NOT px.",
+ "maximum": 15,
+ "minimum": 1,
+ "type": "number"
+ },
+ "fontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "letterSpacing": {
+ "description": "Base caption glyph spacing in pixels.",
+ "maximum": 20,
+ "minimum": -5,
+ "type": "number"
+ },
+ "lineGapEm": {
+ "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxWidthPercent": {
+ "exclusiveMinimum": 0,
+ "maximum": 100,
+ "type": "number"
+ },
+ "plate": {
+ "enum": [
+ "glass",
+ "solid",
+ "none"
+ ],
+ "type": "string"
+ },
+ "position": {
+ "enum": [
+ "top",
+ "center",
+ "bottom"
+ ],
+ "type": "string"
+ },
+ "region": {
+ "additionalProperties": {},
+ "description": "Optional caption layout box {x,y,w,h} in normalized output-frame coordinates. Overrides position; text starts at its top edge and wraps/pages within its width and height.",
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "textTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "wordGapEm": {
+ "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "const": "setCaptionStyle",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "style"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Set the caption compositing plane. Use `behind-subject` to place captions behind the segmented foreground subject; use `front` for conventional captions above all video layers.",
+ "properties": {
+ "type": {
+ "const": "setCaptionDepth",
+ "type": "string"
+ },
+ "zPlane": {
+ "enum": [
+ "front",
+ "behind-subject"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "zPlane"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Replace the caption SEGMENTS wholesale — author the word-timed caption layer directly (each segment = one sentence/page of `words` with timeline-ms `startMs`/`endMs`, optional `emphasis`). This is how a client with its OWN word timings (e.g. a generated VO take) gets word-synced captions without a source transcript; the compose lane's transcript slice writes the same layer. `style`, when given, merges with setCaptionStyle semantics; an omitted style keeps the existing one. Renderer paginates within a segment and never pools words across two — keep segments sentence-bounded.",
+ "properties": {
+ "segments": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "words": {
+ "items": {
+ "additionalProperties": {},
+ "properties": {
+ "annotate": {
+ "enum": [
+ "circle",
+ "underline"
+ ],
+ "type": "string"
+ },
+ "emphasis": {
+ "type": "boolean"
+ },
+ "endMs": {
+ "description": "Word end on the composition timeline, in milliseconds.",
+ "minimum": 0,
+ "type": "number"
+ },
+ "startMs": {
+ "description": "Word start on the composition timeline, in milliseconds.",
+ "minimum": 0,
+ "type": "number"
+ },
+ "text": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "text",
+ "startMs",
+ "endMs"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "words"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "style": {
+ "additionalProperties": {},
+ "properties": {
+ "annotationColor": {
+ "type": "string"
+ },
+ "annotationStrokeWidth": {
+ "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
+ "maximum": 12,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "annotationTexture": {
+ "description": "Native annotation stroke finish; default clean.",
+ "enum": [
+ "clean",
+ "pencil"
+ ],
+ "type": "string"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "color": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "emphasisColor": {
+ "type": "string"
+ },
+ "emphasisFontFamily": {
+ "type": "string"
+ },
+ "emphasisFontStyle": {
+ "enum": [
+ "normal",
+ "italic"
+ ],
+ "type": "string"
+ },
+ "emphasisFontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "emphasisGradient": {
+ "type": "string"
+ },
+ "emphasisLetterSpacing": {
+ "type": "number"
+ },
+ "emphasisPlate": {
+ "type": "boolean"
+ },
+ "emphasisPlateAltColor": {
+ "type": "string"
+ },
+ "emphasisPlateAltTextColor": {
+ "type": "string"
+ },
+ "emphasisPlateColor": {
+ "type": "string"
+ },
+ "emphasisPlatePadX": {
+ "type": "number"
+ },
+ "emphasisPlatePadY": {
+ "type": "number"
+ },
+ "emphasisPlateRadius": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "emphasisPlateReveal": {
+ "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
+ "type": "boolean"
+ },
+ "emphasisPlateTextColor": {
+ "type": "string"
+ },
+ "emphasisScale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "emphasisTextTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "entrance": {
+ "enum": [
+ "none",
+ "fade",
+ "word-pop",
+ "stagger-up"
+ ],
+ "type": "string"
+ },
+ "entranceMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "entranceStaggerMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "exitMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fontFamily": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fontSize": {
+ "description": "Font size as % of composition height (1-15, default 5). NOT px.",
+ "maximum": 15,
+ "minimum": 1,
+ "type": "number"
+ },
+ "fontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "letterSpacing": {
+ "description": "Base caption glyph spacing in pixels.",
+ "maximum": 20,
+ "minimum": -5,
+ "type": "number"
+ },
+ "lineGapEm": {
+ "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ },
+ "maxWidthPercent": {
+ "exclusiveMinimum": 0,
+ "maximum": 100,
+ "type": "number"
+ },
+ "plate": {
+ "enum": [
+ "glass",
+ "solid",
+ "none"
+ ],
+ "type": "string"
+ },
+ "position": {
+ "enum": [
+ "top",
+ "center",
+ "bottom"
+ ],
+ "type": "string"
+ },
+ "region": {
+ "additionalProperties": {},
+ "description": "Optional caption layout box {x,y,w,h} in normalized output-frame coordinates. Overrides position; text starts at its top edge and wraps/pages within its width and height.",
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "textTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "wordGapEm": {
+ "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "type": {
+ "const": "setCaptions",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "segments"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Replace native caption placements without changing transcript words or timings. Each layout references a half-open word-index range in one saved segment; a one-word range is valid. region places that group independently, optional bounded scale/rotation/style changes its look, and holdThroughWordIndex keeps it visible through a later saved word in the same segment. All words in a placed range occupy one page; rendering refuses a range that cannot fit its box, so enlarge region or split the range. The box reserves horizontal space of 1.6 font sizes and vertical space of 0.8 font sizes for padding, with at most three lines. Unreferenced words keep the default caption layout. Word ranges must not overlap. Reapply after caption regeneration or timeline cuts.",
+ "properties": {
+ "layouts": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "holdThroughWordIndex": {
+ "description": "Inclusive saved-word index in this segment. The layout stays visible until that word ends.",
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "region": {
+ "additionalProperties": {},
+ "properties": {
+ "h": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "w": {
+ "exclusiveMinimum": 0,
+ "maximum": 1,
+ "type": "number"
+ },
+ "x": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "x",
+ "y",
+ "w",
+ "h"
+ ],
+ "type": "object"
+ },
+ "rotation": {
+ "maximum": 45,
+ "minimum": -45,
+ "type": "number"
+ },
+ "scale": {
+ "maximum": 4,
+ "minimum": 0.25,
+ "type": "number"
+ },
+ "segmentIndex": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "style": {
+ "additionalProperties": false,
+ "properties": {
+ "annotationColor": {
+ "type": "string"
+ },
+ "annotationStrokeWidth": {
+ "description": "Annotation stroke width in its 100×100 SVG coordinate system; default 4.",
+ "maximum": 12,
+ "minimum": 0.5,
+ "type": "number"
+ },
+ "annotationTexture": {
+ "description": "Native annotation stroke finish; default clean.",
+ "enum": [
+ "clean",
+ "pencil"
+ ],
+ "type": "string"
+ },
+ "backgroundColor": {
+ "type": "string"
+ },
+ "color": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "emphasisColor": {
+ "type": "string"
+ },
+ "emphasisFontFamily": {
+ "type": "string"
+ },
+ "emphasisFontStyle": {
+ "enum": [
+ "normal",
+ "italic"
+ ],
+ "type": "string"
+ },
+ "emphasisFontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "emphasisLetterSpacing": {
+ "type": "number"
+ },
+ "emphasisPlate": {
+ "type": "boolean"
+ },
+ "emphasisPlateAltColor": {
+ "type": "string"
+ },
+ "emphasisPlateAltTextColor": {
+ "type": "string"
+ },
+ "emphasisPlateColor": {
+ "type": "string"
+ },
+ "emphasisPlatePadX": {
+ "type": "number"
+ },
+ "emphasisPlatePadY": {
+ "type": "number"
+ },
+ "emphasisPlateRadius": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "emphasisPlateReveal": {
+ "description": "Grow a shared emphasis plate as saved words appear while reserving its final layout width.",
+ "type": "boolean"
+ },
+ "emphasisPlateTextColor": {
+ "type": "string"
+ },
+ "emphasisScale": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "emphasisTextTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "entrance": {
+ "enum": [
+ "none",
+ "fade",
+ "word-pop",
+ "stagger-up"
+ ],
+ "type": "string"
+ },
+ "entranceMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "entranceStaggerMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "exitMs": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "fontFamily": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "fontSize": {
+ "description": "Font size as % of composition height (1-15, default 5). NOT px.",
+ "maximum": 15,
+ "minimum": 1,
+ "type": "number"
+ },
+ "fontWeight": {
+ "maximum": 900,
+ "minimum": 100,
+ "type": "integer"
+ },
+ "highlightColor": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "letterSpacing": {
+ "description": "Base caption glyph spacing in pixels.",
+ "maximum": 20,
+ "minimum": -5,
+ "type": "number"
+ },
+ "lineGapEm": {
+ "description": "Gap between caption lines as a multiple of base font size; default 0.25.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ },
+ "plate": {
+ "enum": [
+ "glass",
+ "solid",
+ "none"
+ ],
+ "type": "string"
+ },
+ "textTransform": {
+ "enum": [
+ "none",
+ "uppercase",
+ "capitalize"
+ ],
+ "type": "string"
+ },
+ "wordGapEm": {
+ "description": "Gap between caption runs as a multiple of base font size; default 0.35.",
+ "maximum": 2,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "wordEndIndex": {
+ "description": "Exclusive word index in the saved caption segment.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "wordMarks": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "annotate": {
+ "anyOf": [
+ {
+ "enum": [
+ "circle",
+ "underline"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "emphasis": {
+ "type": "boolean"
+ },
+ "wordIndex": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "wordIndex"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "wordStartIndex": {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "segmentIndex",
+ "wordStartIndex",
+ "wordEndIndex",
+ "region"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "setCaptionLayouts",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "layouts"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Author a scene shot and place it on a dedicated overlay track. The host validates the scene, generates and registers an immutable wrapper component source, and emits the ordinary track/clip operations carrying `props.componentRef` — you edit a scene SPEC, never wrapper TSX or a source hash. Registration and the composition update are ONE undoable edit; a failure publishes nothing and leaves no clip pointing at an unresolved source. Pass EXACTLY ONE of `trackId` (an existing dedicated scene track) or `newTrack: true` (mint one). That track holds scene-shot clips and gaps only — no generic component/primitive/media clips in v1 — and existing generic overlay tracks are unaffected. Scene clips use front zPlane and full-frame placement: outer per-clip `region`, `position`, `scale`, `rotation`, `fit`, `effects`, keyframes (`tweens`/`automation`), `params.transition`, `params.sequenceGroup` and internal fadeIn/fadeOut are REFUSED with a path, because the shot's own layer transforms are the single transform owner. TEXT: `space: \"screen\"` text is composed above the world result, stays fixed in the frame and stays sharp through focus; `space: \"world\"` text is rasterized into the 3D scene, moves with the camera and is occluded by geometry. Screenshots and world text are UNLIT and colour-managed so product UI colours are not tinted by the studio lighting, while device bodies are lit and cast shadows; an unlit surface still occludes. SCOPE GAP (pre-existing, neither closed nor changed by scene shots): global wrap effects — composition-level grades and camera effects — do not reach front-overlay clips, so they do not affect a scene shot. Author the look INSIDE the shot (`post.grain`, `post.vignette`, `post.focus`, `backdrop`, `environment`) instead. DISCOVERY: there is no built-in scene primitive to look up in list_catalog; the wrapper this operation registers appears afterwards as an ordinary INSTALLED component under the existing catalog rules. ASSETS: `assets` binds each slot name a layer references to a media id in the same project, and the slot's declared KIND decides what it admits — an image slot takes PNG, JPEG or WebP, a video slot MP4 or WebM. Binding the wrong kind is refused with the slot's path.",
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "newTrack": {
+ "type": "boolean"
+ },
+ "newTrackId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "scene": {
+ "additionalProperties": false,
+ "description": "A version-2 scene shot: a self-contained 3D world-object shot that scene.add / scene.update materializes into an ordinary component clip. The shot owns its layers, camera, lighting, backdrop and normalized local animation; the composition owns start, duration, ordering, cuts and transitions. Coordinates are REFERENCE PIXELS: origin at frame centre, +X right, +Y down, +Z toward the viewer. referenceSize must have the SAME aspect ratio as the composition format; mismatch fails instead of cropping. At equal aspect ratio the shot scales uniformly by outputWidth/referenceWidth. A segment's easing belongs to the keyframe it ARRIVES at; the first keyframe has no easing. Authoring limits: 32 layers, 4 devices, 16 distinct image slots, 256 keyframes per channel, 2048 keyframes per shot. Version 2 supports nested groups, procedural slab/page/phone/laptop objects, screen- and world-space text, admitted image/component/video surfaces, fixed photographic and generated studio environments, transparent/solid/linear/radial backdrops, constraints, focus, grain and vignette. Raw HTML, custom shader props, imported GLB models, arbitrary external HDR environments, skeletal animation and physics are refused with an exact field path.",
+ "properties": {
+ "animation": {
+ "default": [],
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "keyframes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "easing": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "linear",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "hold",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "bezier",
+ "type": "string"
+ },
+ "x1": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "x2": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y1": {
+ "maximum": 5,
+ "minimum": -4,
+ "type": "number"
+ },
+ "y2": {
+ "maximum": 5,
+ "minimum": -4,
+ "type": "number"
+ }
+ },
+ "required": [
+ "kind",
+ "x1",
+ "y1",
+ "x2",
+ "y2"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "at",
+ "value"
+ ],
+ "type": "object"
+ },
+ "maxItems": 256,
+ "minItems": 1,
+ "type": "array"
+ },
+ "property": {
+ "enum": [
+ "positionX",
+ "positionY",
+ "positionZ",
+ "rotationX",
+ "rotationY",
+ "rotationZ",
+ "fov",
+ "scale",
+ "opacity",
+ "openAngle",
+ "x",
+ "y",
+ "rotation",
+ "intensity",
+ "distance",
+ "range",
+ "maxBlur"
+ ],
+ "type": "string"
+ },
+ "target": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "camera",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "layer",
+ "type": "string"
+ },
+ "layerId": {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "layerId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "environment",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "focus",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "required": [
+ "target",
+ "property",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "backdrop": {
+ "default": {
+ "kind": "transparent"
+ },
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "transparent",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ },
+ "kind": {
+ "const": "solid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "color"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "angle": {
+ "default": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "linear",
+ "type": "string"
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "at",
+ "color"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "stops"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "default": [
+ 0.5,
+ 0.5
+ ],
+ "items": false,
+ "maxItems": 2,
+ "minItems": 2,
+ "prefixItems": [
+ {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "kind": {
+ "const": "radial",
+ "type": "string"
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "at",
+ "color"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "stops"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "camera": {
+ "additionalProperties": false,
+ "properties": {
+ "fov": {
+ "maximum": 1.3962634015954636,
+ "minimum": 0.3141592653589793,
+ "type": "number"
+ },
+ "position": {
+ "items": false,
+ "maxItems": 3,
+ "minItems": 3,
+ "prefixItems": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "rotation": {
+ "items": false,
+ "maxItems": 3,
+ "minItems": 3,
+ "prefixItems": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "constraints": {
+ "default": [],
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gap": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "minSeparation",
+ "type": "string"
+ },
+ "objects": {
+ "items": {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
+ "type": "string"
+ },
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "objects",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "environment": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "floorY": {
+ "default": -420,
+ "type": "number"
+ },
+ "intensity": {
+ "default": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "studio",
+ "type": "string"
+ },
+ "lightingProfile": {
+ "default": "studio",
+ "enum": [
+ "studio",
+ "studio-edge"
+ ],
+ "type": "string"
+ },
+ "preset": {
+ "default": "soft",
+ "enum": [
+ "soft",
+ "key",
+ "rim"
+ ],
+ "type": "string"
+ },
+ "shadowOpacity": {
+ "default": 0.5,
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "photographic-studio-v1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ ],
+ "default": {
+ "floorY": -420,
+ "intensity": 1,
+ "lightingProfile": "studio",
+ "preset": "soft",
+ "shadowOpacity": 0.5
+ }
+ },
+ "layers": {
+ "items": {
+ "$ref": "#/$defs/__schema1"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "post": {
+ "additionalProperties": false,
+ "default": {
+ "focus": null,
+ "grain": 0,
+ "vignette": 0
+ },
+ "properties": {
+ "focus": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "distance": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "maxBlur": {
+ "maximum": 64,
+ "minimum": 0,
+ "type": "number"
+ },
+ "range": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "distance",
+ "range",
+ "maxBlur"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "grain": {
+ "default": 0,
+ "maximum": 0.5,
+ "minimum": 0,
+ "type": "number"
+ },
+ "vignette": {
+ "default": 0,
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "referenceSize": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "maximum": 8192,
+ "minimum": 16,
+ "type": "integer"
+ },
+ "width": {
+ "maximum": 8192,
+ "minimum": 16,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "width",
+ "height"
+ ],
+ "type": "object"
+ },
+ "version": {
+ "const": 2,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "referenceSize",
+ "layers"
+ ],
+ "type": "object"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "trackId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "transitionIn": {
+ "additionalProperties": {},
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "fromClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "handlePolicy": {
+ "const": "outgoing-overrun-at-cut-v1",
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "toClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "duration"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "scene.add",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "startTime",
+ "duration",
+ "scene",
+ "assets"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Revise a scene shot in place by clip id. Send a replacement `scene` and/or `assets`; timing changes use the ordinary clip timing fields (`startTime`, `duration`, `transitionIn`). Omitted fields keep their persisted values and the MERGED result is re-validated as a whole, so a partial edit cannot leave the shot invalid. Changing only values or asset IDs updates props and bindings and REUSES the pinned source; changing the referenced SLOT SET regenerates the wrapper manifest and registers a new immutable source version atomically. Undo restores the source reference, spec, bindings and timing together. Topology, asset bindings, text content, font properties, device kind and colours are STATIC within a shot's animation — change them here (a revised spec) rather than trying to animate them. This is not a source trim or slip: a shortened or extended clip resamples the SAME normalized animation over its new duration, and trim/slip requests on generated animation are rejected rather than reinterpreted as media trims. In one batch, `scene.update` may target a shot added by an earlier `scene.add`. ASSETS: `assets` binds each slot name a layer references to a media id in the same project, and the slot's declared KIND decides what it admits — an image slot takes PNG, JPEG or WebP, a video slot MP4 or WebM. Binding the wrong kind is refused with the slot's path.",
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "clipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "scene": {
+ "additionalProperties": false,
+ "description": "A version-2 scene shot: a self-contained 3D world-object shot that scene.add / scene.update materializes into an ordinary component clip. The shot owns its layers, camera, lighting, backdrop and normalized local animation; the composition owns start, duration, ordering, cuts and transitions. Coordinates are REFERENCE PIXELS: origin at frame centre, +X right, +Y down, +Z toward the viewer. referenceSize must have the SAME aspect ratio as the composition format; mismatch fails instead of cropping. At equal aspect ratio the shot scales uniformly by outputWidth/referenceWidth. A segment's easing belongs to the keyframe it ARRIVES at; the first keyframe has no easing. Authoring limits: 32 layers, 4 devices, 16 distinct image slots, 256 keyframes per channel, 2048 keyframes per shot. Version 2 supports nested groups, procedural slab/page/phone/laptop objects, screen- and world-space text, admitted image/component/video surfaces, fixed photographic and generated studio environments, transparent/solid/linear/radial backdrops, constraints, focus, grain and vignette. Raw HTML, custom shader props, imported GLB models, arbitrary external HDR environments, skeletal animation and physics are refused with an exact field path.",
+ "properties": {
+ "animation": {
+ "default": [],
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "keyframes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "easing": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "linear",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "hold",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "bezier",
+ "type": "string"
+ },
+ "x1": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "x2": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "y1": {
+ "maximum": 5,
+ "minimum": -4,
+ "type": "number"
+ },
+ "y2": {
+ "maximum": 5,
+ "minimum": -4,
+ "type": "number"
+ }
+ },
+ "required": [
+ "kind",
+ "x1",
+ "y1",
+ "x2",
+ "y2"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "at",
+ "value"
+ ],
+ "type": "object"
+ },
+ "maxItems": 256,
+ "minItems": 1,
+ "type": "array"
+ },
+ "property": {
+ "enum": [
+ "positionX",
+ "positionY",
+ "positionZ",
+ "rotationX",
+ "rotationY",
+ "rotationZ",
+ "fov",
+ "scale",
+ "opacity",
+ "openAngle",
+ "x",
+ "y",
+ "rotation",
+ "intensity",
+ "distance",
+ "range",
+ "maxBlur"
+ ],
+ "type": "string"
+ },
+ "target": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "camera",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "layer",
+ "type": "string"
+ },
+ "layerId": {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "layerId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "environment",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "focus",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ ]
+ }
+ },
+ "required": [
+ "target",
+ "property",
+ "keyframes"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "backdrop": {
+ "default": {
+ "kind": "transparent"
+ },
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "transparent",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ },
+ "kind": {
+ "const": "solid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "color"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "angle": {
+ "default": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "linear",
+ "type": "string"
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "at",
+ "color"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "stops"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "default": [
+ 0.5,
+ 0.5
+ ],
+ "items": false,
+ "maxItems": 2,
+ "minItems": 2,
+ "prefixItems": [
+ {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "kind": {
+ "const": "radial",
+ "type": "string"
+ },
+ "stops": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "at": {
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "color": {
+ "anyOf": [
+ {
+ "pattern": "^#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$",
+ "type": "string"
+ },
+ {
+ "enum": [
+ "$brand:colors.background",
+ "$brand:colors.surface",
+ "$brand:colors.text",
+ "$brand:colors.textMuted",
+ "$brand:colors.accent",
+ "$brand:colors.accentStrong",
+ "$brand:colors.accentSoft",
+ "$brand:colors.success",
+ "$brand:colors.warning",
+ "$brand:colors.danger"
+ ],
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "required": [
+ "at",
+ "color"
+ ],
+ "type": "object"
+ },
+ "maxItems": 8,
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "stops"
+ ],
+ "type": "object"
+ }
+ ]
+ },
+ "camera": {
+ "additionalProperties": false,
+ "properties": {
+ "fov": {
+ "maximum": 1.3962634015954636,
+ "minimum": 0.3141592653589793,
+ "type": "number"
+ },
+ "position": {
+ "items": false,
+ "maxItems": 3,
+ "minItems": 3,
+ "prefixItems": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ },
+ "rotation": {
+ "items": false,
+ "maxItems": 3,
+ "minItems": 3,
+ "prefixItems": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ },
+ {
+ "type": "number"
+ }
+ ],
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "constraints": {
+ "default": [],
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "gap": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "minSeparation",
+ "type": "string"
+ },
+ "objects": {
+ "items": {
+ "maxLength": 64,
+ "minLength": 1,
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
+ "type": "string"
+ },
+ "minItems": 2,
+ "type": "array"
+ }
+ },
+ "required": [
+ "kind",
+ "objects",
+ "gap"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "environment": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "floorY": {
+ "default": -420,
+ "type": "number"
+ },
+ "intensity": {
+ "default": 1,
+ "minimum": 0,
+ "type": "number"
+ },
+ "kind": {
+ "const": "studio",
+ "type": "string"
+ },
+ "lightingProfile": {
+ "default": "studio",
+ "enum": [
+ "studio",
+ "studio-edge"
+ ],
+ "type": "string"
+ },
+ "preset": {
+ "default": "soft",
+ "enum": [
+ "soft",
+ "key",
+ "rim"
+ ],
+ "type": "string"
+ },
+ "shadowOpacity": {
+ "default": 0.5,
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "kind": {
+ "const": "photographic-studio-v1",
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind"
+ ],
+ "type": "object"
+ }
+ ],
+ "default": {
+ "floorY": -420,
+ "intensity": 1,
+ "lightingProfile": "studio",
+ "preset": "soft",
+ "shadowOpacity": 0.5
+ }
+ },
+ "layers": {
+ "items": {
+ "$ref": "#/$defs/__schema1"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "post": {
+ "additionalProperties": false,
+ "default": {
+ "focus": null,
+ "grain": 0,
+ "vignette": 0
+ },
+ "properties": {
+ "focus": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "distance": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "maxBlur": {
+ "maximum": 64,
+ "minimum": 0,
+ "type": "number"
+ },
+ "range": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "distance",
+ "range",
+ "maxBlur"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null
+ },
+ "grain": {
+ "default": 0,
+ "maximum": 0.5,
+ "minimum": 0,
+ "type": "number"
+ },
+ "vignette": {
+ "default": 0,
+ "maximum": 1,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "referenceSize": {
+ "additionalProperties": false,
+ "properties": {
+ "height": {
+ "maximum": 8192,
+ "minimum": 16,
+ "type": "integer"
+ },
+ "width": {
+ "maximum": 8192,
+ "minimum": 16,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "width",
+ "height"
+ ],
+ "type": "object"
+ },
+ "version": {
+ "const": 2,
+ "type": "number"
+ }
+ },
+ "required": [
+ "version",
+ "referenceSize",
+ "layers"
+ ],
+ "type": "object"
+ },
+ "startTime": {
+ "minimum": 0,
+ "type": "number"
+ },
+ "transitionIn": {
+ "additionalProperties": {},
+ "properties": {
+ "component": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "duration": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "fromClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "handlePolicy": {
+ "const": "outgoing-overrun-at-cut-v1",
+ "type": "string"
+ },
+ "id": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "toClipId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "duration"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "scene.update",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Materialize a clip's SOURCE-media temporal GRID as timeline markers — the rhythm authority you cut to. `grid:\"beat\"` reads a MUSIC bed's beat map (get_media_context.beatGrid), `grid:\"word\"` the VO word onsets (wordGrid); each grid point is projected from media time to TIMELINE time through the clip's placement (startTime, trim, playbackRate, excludedRanges) and written as a `kind:\"beat\"|\"word\"` marker (`metadata.sourceClipId` set). Points outside the clip's visible window are skipped. Re-running REPLACES the prior markers from the same clip+grid (idempotent). Land cuts and transition MIDPOINTS on the markers (a 0.5s transition starts 0.25s before its marker). `maxMarkers` (default 500, ceiling 2000) — exceeding it fails loud with the count. `grid:\"shot\"` is not yet exposed (shot_grid_unavailable). The target must be a media clip; absent evidence fails loud (grid_unavailable) naming how to get it (declare audioRole:\"music\" at ingest / transcribe).",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "grid": {
+ "enum": [
+ "beat",
+ "word",
+ "shot"
+ ],
+ "type": "string"
+ },
+ "maxMarkers": {
+ "exclusiveMinimum": 0,
+ "maximum": 2000,
+ "type": "integer"
+ },
+ "type": {
+ "const": "materializeGrid",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "grid"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Attach caption CONTENT from the media's cached transcript — no pasting words. ROUTE-MATERIALIZED like materializeGrid: the server slices the word-timed transcript to `window` (source seconds; absent = the whole media), rebases times, sentence-splits into segments, and applies it as `setCaptions`. 422 media_no_transcript when the media has no transcript or no words in the window. For your OWN word timings use setCaptions directly. For edited multi-clip timelines, use captions.fromComposition after saving the edits; that operation projects all selected track clips, trims, exclusions, and placements.",
+ "properties": {
+ "mediaId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "captions.fromTranscript",
+ "type": "string"
+ },
+ "window": {
+ "additionalProperties": false,
+ "properties": {
+ "endSec": {
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "startSec": {
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "required": [
+ "startSec",
+ "endSec"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "type",
+ "mediaId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Snapshot word-timed captions from the SAVED edits on one explicit enabled video or audio track. The host reads each source media transcript, projects words through clip trim, excluded ranges and placement, then replaces the caption segments. This is route-materialized to setCaptions; call it AFTER persisting clip edits and call it again when those edits change. The existing caption style and depth are preserved. Missing transcripts, unsupported clips, inconsistent clip durations, and overlapping audible clips fail loud. Playback rate scales source word times and playable duration on both audio and video tracks.",
+ "properties": {
+ "trackId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": {
+ "const": "captions.fromComposition",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "trackId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Set the output format — `aspectRatio` (16:9|9:16|1:1|4:5) plus optional `fps` and `resolution`. Merges: an omitted field keeps the current value.",
+ "properties": {
+ "format": {
+ "additionalProperties": {},
+ "properties": {
+ "aspectRatio": {
+ "enum": [
+ "16:9",
+ "9:16",
+ "1:1",
+ "4:5"
+ ],
+ "type": "string"
+ },
+ "fps": {
+ "anyOf": [
+ {
+ "const": 24,
+ "type": "number"
+ },
+ {
+ "const": 25,
+ "type": "number"
+ },
+ {
+ "const": 30,
+ "type": "number"
+ },
+ {
+ "const": 60,
+ "type": "number"
+ }
+ ]
+ },
+ "resolution": {
+ "enum": [
+ "hd",
+ "fhd",
+ "4k"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "aspectRatio"
+ ],
+ "type": "object"
+ },
+ "type": {
+ "const": "setFormat",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "format"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Add an EMPTY track of a given family (video|audio|image|overlay|effect). Optional pinned `id`. The new track is appended, so it starts at the BACK: index 0 is the top layer and higher indices are further back (see `reorderTracks`). Track order only ranks clips on the same plane — every overlay draws above the video lane unless its `zPlane` is `behind-subject`, whatever its track index.",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "video",
+ "audio",
+ "image",
+ "overlay",
+ "effect"
+ ],
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "type": {
+ "const": "addTrack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "kind"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Remove a track AND all its clips by id.",
+ "properties": {
+ "trackId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "removeTrack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "trackId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Patch a track's `name` / `enabled` by id. Track volume is retired: set each clip's own volume.",
+ "properties": {
+ "trackId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "updateTrack",
+ "type": "string"
+ },
+ "updates": {
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "name": {
+ "type": "string"
+ },
+ "volume": {
+ "maximum": 4,
+ "minimum": 0,
+ "type": "number"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "required": [
+ "type",
+ "trackId",
+ "updates"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Move a track from one index to another. ORDER: index 0 is the TOP layer, not the bottom — moving a backdrop to index 0 puts it in FRONT of everything and hides the composition. Higher index = further back. PRECEDENCE: track order decides compositing only among clips on the same plane. Overlays are composited in a lane ABOVE the video lane whatever their track index; the one exception is `zPlane:\"behind-subject\"`, which moves the overlay inside its host clip, behind the segmented foreground. So if reordering tracks does not change what you see, the plane split already decided it.",
+ "properties": {
+ "fromIndex": {
+ "type": "number"
+ },
+ "toIndex": {
+ "type": "number"
+ },
+ "type": {
+ "const": "reorderTracks",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "fromIndex",
+ "toIndex"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Move a clip to another SAME-family track, optionally at a new `newStartTime`.",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "newStartTime": {
+ "type": "number"
+ },
+ "targetTrackId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "moveClipToTrack",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "targetTrackId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Duplicate a clip by id. Pin `newClipId` to make the copy's id deterministic (required for a clean undo/inverse).",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "newClipId": {
+ "type": "string"
+ },
+ "type": {
+ "const": "duplicateClip",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Server-authoritative: delete the [start,end] time window (seconds) and ripple every downstream clip/marker/caption earlier to close the gap.",
+ "properties": {
+ "end": {
+ "type": "number"
+ },
+ "start": {
+ "type": "number"
+ },
+ "type": {
+ "const": "cutAndRipple",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Server-authoritative: shift everything at/after `time` (seconds) by `amount` seconds (+ opens a gap, − closes one).",
+ "properties": {
+ "amount": {
+ "type": "number"
+ },
+ "time": {
+ "type": "number"
+ },
+ "type": {
+ "const": "ripple",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "time",
+ "amount"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Server-authoritative: exclude a [sourceStart,sourceEnd] span (seconds) of a clip's SOURCE (an internal trim) and ripple downstream — the preferred way to drop a sub-range vs a source patch.",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "sourceEnd": {
+ "type": "number"
+ },
+ "sourceStart": {
+ "type": "number"
+ },
+ "type": {
+ "const": "addExcludedRange",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "sourceStart",
+ "sourceEnd"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Server-authoritative: remove a clip's previously-added excluded range by index (re-includes that span, ripples downstream).",
+ "properties": {
+ "clipId": {
+ "type": "string"
+ },
+ "rangeIdx": {
+ "type": "number"
+ },
+ "type": {
+ "const": "removeExcludedRange",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "clipId",
+ "rangeIdx"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "Atomically repin explicit version3 invocations using complete before/after execution references and an exact composition etag. Persistence must canonically admit scoped source hashes, destination input schemas and every resulting target context before applying, including replay/undo. Never infer a latest head, downgrade versions or accept an admitted flag.",
+ "properties": {
+ "changes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "after": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "before": {
+ "oneOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "assets": {
+ "additionalProperties": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "componentId": {
+ "maxLength": 256,
+ "minLength": 1,
+ "type": "string"
+ },
+ "mediaBindings": {
+ "additionalProperties": {
+ "items": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "properties": {},
+ "propertyNames": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "params": {
+ "additionalProperties": {
+ "$ref": "#/$defs/__schema0"
+ },
+ "properties": {},
+ "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"
+ }
+ ]
+ },
+ "placementId": {
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "placementId",
+ "before",
+ "after"
+ ],
+ "type": "object"
+ },
+ "maxItems": 512,
+ "minItems": 1,
+ "type": "array"
+ },
+ "componentId": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "expectedCompositionEtag": {
+ "minLength": 1,
+ "type": "string"
+ },
+ "from": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "to": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "type": {
+ "const": "component.repin-v3",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "componentId",
+ "from",
+ "to",
+ "expectedCompositionEtag",
+ "changes"
+ ],
+ "type": "object"
+ }
+]