Skip to main content
Glama

Create or save a workflow plan

prepare_workflow_plan

Create or revise a complete workflow plan document—including brief, beats, claims, and assets—without starting a run; omit plan identifiers to create, supply both to save a revision.

Instructions

Free; starts no run. The complete document: omit plan_id and base_version to create, supply both to save a revision. Strict, at most 256000 JSON bytes; keep accepted narration exact. After a lost save answer, read the saved document; never auto-approve or buy.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "document": "<document>"
    },
    "name": "prepare_workflow_plan"
  }
}

Input Schema

NameRequiredDescriptionDefault
plan_idNo
documentYes
base_versionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed26 schema fields changedv0.45.0
    • removedInput schema / $defs / d0 / properties / observed_at / pattern
      Removed value: -"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    • addedInput schema / $defs / d4 / items
      Added value: +{
      +  "maxLength": 400,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / $defs / d4 / maxItems
      Added value: +40
    • removedInput schema / $defs / d4 / pattern
      Removed value: -"^[a-f0-9]{64}$"
    • changedInput schema / $defs / d4 / type
      Previous value: -"string"New value: +"array"
    • removedInput schema / $defs / d5 / exclusiveMaximum
      Removed value: -1
    • removedInput schema / $defs / d5 / minimum
      Removed value: -0
    • addedInput schema / $defs / d5 / pattern
      Added value: +"^[a-f0-9]{64}$"
    • changedInput schema / $defs / d5 / type
      Previous value: -"number"New value: +"string"
    • addedInput schema / $defs / d6 / exclusiveMaximum
      Added value: +1
    • removedInput schema / $defs / d6 / exclusiveMinimum
      Removed value: -0
    • removedInput schema / $defs / d6 / maximum
      Removed value: -1
    • addedInput schema / $defs / d6 / minimum
      Added value: +0
    • addedInput schema / $defs / d7
      Added value: +{
      +  "exclusiveMinimum": 0,
      +  "maximum": 1,
      +  "type": "number"
      +}
    • changedInput schema / properties / document / properties / assets / items / properties / content_digest / $ref
      Previous value: -"#/$defs/d4"New value: +"#/$defs/d5"
    • changedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / height / $ref
      Previous value: -"#/$defs/d6"New value: +"#/$defs/d7"
    • changedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / width / $ref
      Previous value: -"#/$defs/d6"New value: +"#/$defs/d7"
    • changedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / x / $ref
      Previous value: -"#/$defs/d5"New value: +"#/$defs/d6"
    • changedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / y / $ref
      Previous value: -"#/$defs/d5"New value: +"#/$defs/d6"
    • addedInput schema / properties / document / properties / brief / properties / added
      Added value: +{
      +  "items": {
      +    "maxLength": 200,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "maxItems": 200,
      +  "type": "array"
      +}
    • addedInput schema / properties / document / properties / brief / properties / move_warnings
      Added value: +{
      +  "$ref": "#/$defs/d4"
      +}
    • changedInput schema / properties / document / properties / brief / properties / requested_format / properties / resolution / enum
      Previous value: -[
      -  "720p",
      -  "1080p",
      -  "4k"
      -]New value: +[
      +  "720p",
      +  "1080p"
      +]
    • addedInput schema / properties / document / properties / brief / properties / review_notes
      Added value: +{
      +  "items": {
      +    "$ref": "#/$defs/d2"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • addedInput schema / properties / document / properties / brief / properties / voice_warnings
      Added value: +{
      +  "$ref": "#/$defs/d4"
      +}
    • changedInput schema / properties / document / properties / method / properties / capability_digest / $ref
      Previous value: -"#/$defs/d4"New value: +"#/$defs/d5"
    • changedInput schema / properties / document / properties / method / properties / content_digest / $ref
      Previous value: -"#/$defs/d4"New value: +"#/$defs/d5"
  2. Changed94 schema fields changedv0.39.0
    • addedInput schema / $defs
      Added value: +{
      +  "d0": {
      +    "properties": {
      +      "kind": {
      +        "enum": [
      +          "owner",
      +          "url",
      +          "capture"
      +        ],
      +        "type": "string"
      +      },
      +      "observed_at": {
      +        "format": "date-time",
      +        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      +        "type": "string"
      +      },
      +      "product_state": {
      +        "$ref": "#/$defs/d2"
      +      },
      +      "reference": {
      +        "$ref": "#/$defs/d2"
      +      },
      +      "url": {
      +        "format": "uri",
      +        "maxLength": 2048,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "kind",
      +      "reference"
      +    ],
      +    "type": "object"
      +  },
      +  "d1": {
      +    "anyOf": [
      +      {
      +        "properties": {
      +          "endWord": {
      +            "exclusiveMinimum": 0,
      +            "type": "integer"
      +          },
      +          "startWord": {
      +            "minimum": 0,
      +            "type": "integer"
      +          }
      +        },
      +        "required": [
      +          "startWord",
      +          "endWord"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "occurrence": {
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "quote": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "quote"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "d2": {
      +    "maxLength": 2000,
      +    "minLength": 1,
      +    "type": "string"
      +  },
      +  "d3": {
      +    "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +    "type": "string"
      +  },
      +  "d4": {
      +    "pattern": "^[a-f0-9]{64}$",
      +    "type": "string"
      +  },
      +  "d5": {
      +    "exclusiveMaximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  },
      +  "d6": {
      +    "exclusiveMinimum": 0,
      +    "maximum": 1,
      +    "type": "number"
      +  }
      +}
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / base_version / maximum
      Removed value: -9007199254740991
    • removedInput schema / properties / document / additionalProperties
      Removed value: -false
    • removedInput schema / properties / document / properties / assets / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / assets / items / properties / anchor / $ref
      Added value: +"#/$defs/d1"
    • removedInput schema / properties / document / properties / assets / items / properties / anchor / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "endWord": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "startWord": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "startWord",
      -      "endWord"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "occurrence": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "quote": {
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "quote"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / document / properties / assets / items / properties / content_digest / $ref
      Added value: +"#/$defs/d4"
    • removedInput schema / properties / document / properties / assets / items / properties / content_digest / pattern
      Removed value: -"^[a-f0-9]{64}$"
    • removedInput schema / properties / document / properties / assets / items / properties / content_digest / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / assets / items / properties / instance_id / $ref
      Added value: +"#/$defs/d3"
    • removedInput schema / properties / document / properties / assets / items / properties / instance_id / pattern
      Removed value: -"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"
    • removedInput schema / properties / document / properties / assets / items / properties / instance_id / type
      Removed value: -"string"
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / height / $ref
      Added value: +"#/$defs/d6"
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / height / exclusiveMinimum
      Removed value: -0
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / height / maximum
      Removed value: -1
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / height / type
      Removed value: -"number"
    • addedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / width / $ref
      Added value: +"#/$defs/d6"
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / width / exclusiveMinimum
      Removed value: -0
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / width / maximum
      Removed value: -1
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / width / type
      Removed value: -"number"
    • addedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / x / $ref
      Added value: +"#/$defs/d5"
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / x / exclusiveMaximum
      Removed value: -1
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / x / minimum
      Removed value: -0
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / x / type
      Removed value: -"number"
    • addedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / y / $ref
      Added value: +"#/$defs/d5"
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / y / exclusiveMaximum
      Removed value: -1
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / y / minimum
      Removed value: -0
    • removedInput schema / properties / document / properties / assets / items / properties / protected_area / properties / y / type
      Removed value: -"number"
    • removedInput schema / properties / document / properties / beats / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / beats / items / properties / anchor / $ref
      Added value: +"#/$defs/d1"
    • removedInput schema / properties / document / properties / beats / items / properties / anchor / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "endWord": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "startWord": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "startWord",
      -      "endWord"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "occurrence": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "quote": {
      -        "maxLength": 500,
      -        "minLength": 1,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "quote"
      -    ],
      -    "type": "object"
      -  }
      -]
    • addedInput schema / properties / document / properties / beats / items / properties / id / $ref
      Added value: +"#/$defs/d3"
    • removedInput schema / properties / document / properties / beats / items / properties / id / pattern
      Removed value: -"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"
    • removedInput schema / properties / document / properties / beats / items / properties / id / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / beats / items / properties / visual / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / beats / items / properties / visual / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / beats / items / properties / visual / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / beats / items / properties / visual / type
      Removed value: -"string"
    • removedInput schema / properties / document / properties / brief / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / brief / properties / audience / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / audience / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / audience / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / audience / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / brief / properties / brand_intent / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / brand_intent / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / brand_intent / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / brand_intent / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / brief / properties / cta / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / cta / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / cta / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / cta / type
      Removed value: -"string"
    • changedInput schema / properties / document / properties / brief / properties / native / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actor_gender": {
      -            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      -            "enum": [
      -              "female",
      -              "male"
      -            ],
      -            "type": "string"
      -          },
      -          "actor_id": {
      -            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      -            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "aspect_ratio": {
      -            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16 without an image; with an image, the supported format nearest the image's shape, even a landscape one — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      -            "enum": [
      -              "9:16",
      -              "1:1",
      -              "16:9"
      -            ],
      -            "type": "string"
      -          },
      -          "background": {
      -            "enum": [
      -              "white",
      -              "blur",
      -              "contain"
      -            ],
      -            "type": "string"
      -          },
      -          "broll_policy": {
      -            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      -            "enum": [
      -              "anyone",
      -              "no_actor",
      -              "no_people"
      -            ],
      -            "type": "string"
      -          },
      -          "call": {
      -            "additionalProperties": false,
      -            "description": "A phone call after a quote: the presenter listens, then freezes while the call plays as a phone line, with a ring first, and an in-call phone beside them shows it (a phone_call template covering the call is used instead). Needs script, a 9:16 frame and words after it. The frozen presenter and the call add production seconds, not presenter seconds, and a live-avatar still shown on the call has its own price in list_prices. Long-form qualification on the server.",
      -            "properties": {
      -              "after": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "endWord": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 9007199254740991,
      -                        "type": "integer"
      -                      },
      -                      "startWord": {
      -                        "maximum": 9007199254740991,
      -                        "minimum": 0,
      -                        "type": "integer"
      -                      }
      -                    },
      -                    "required": [
      -                      "startWord",
      -                      "endWord"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "occurrence": {
      -                        "maximum": 9007199254740991,
      -                        "minimum": 0,
      -                        "type": "integer"
      -                      },
      -                      "quote": {
      -                        "maxLength": 10000,
      -                        "minLength": 1,
      -                        "type": "string"
      -                      }
      -                    },
      -                    "required": [
      -                      "quote"
      -                    ],
      -                    "type": "object"
      -                  }
      -                ],
      -                "description": "The words the call follows: the presenter stops after the quote's last word and resumes on the next one."
      -              },
      -              "lines": {
      -                "description": "The call's turns in order, from both speakers; at most 1500 characters and about 45 s in all.",
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "speaker": {
      -                      "enum": [
      -                        "agent",
      -                        "caller"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "text": {
      -                      "maxLength": 400,
      -                      "minLength": 1,
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "speaker",
      -                    "text"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 12,
      -                "minItems": 2,
      -                "type": "array"
      -              },
      -              "phone": {
      -                "additionalProperties": false,
      -                "description": "The in-call phone drawn over the call when no phone_call template covers it; omitted fields are +1 (305) 555-0147 with its digits after the area code masked, \"Hold This Call?\" and \"You'll be notified to pick up.\".",
      -                "properties": {
      -                  "banner": {
      -                    "maxLength": 32,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "banner_note": {
      -                    "maxLength": 48,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "caller": {
      -                    "maxLength": 24,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "mask_number": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "stage": {
      -                "additionalProperties": false,
      -                "description": "Where the in-call phone settles and how it rises, as a reference measured them (plan_reference_remake writes it); omitted is the reference call scene's own place and rise.",
      -                "properties": {
      -                  "enter": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "anchor": {
      -                        "additionalProperties": false,
      -                        "description": "When the rise starts: seconds from the call's freeze, negative before it.",
      -                        "properties": {
      -                          "id": {
      -                            "const": "freeze_start#1",
      -                            "type": "string"
      -                          },
      -                          "offset_s": {
      -                            "maximum": 0,
      -                            "minimum": -10,
      -                            "type": "number"
      -                          }
      -                        },
      -                        "required": [
      -                          "id",
      -                          "offset_s"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      "displacement": {
      -                        "additionalItems": false,
      -                        "description": "Settled minus first position, in shares of width and height.",
      -                        "items": [
      -                          {
      -                            "maximum": 1,
      -                            "minimum": -1,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "maximum": 1,
      -                            "minimum": -1,
      -                            "type": "number"
      -                          }
      -                        ],
      -                        "maxItems": 2,
      -                        "minItems": 2,
      -                        "type": "array"
      -                      },
      -                      "duration_s": {
      -                        "maximum": 5,
      -                        "minimum": 0.1,
      -                        "type": "number"
      -                      },
      -                      "from": {
      -                        "enum": [
      -                          "bottom",
      -                          "lower_left",
      -                          "lower_right"
      -                        ],
      -                        "type": "string"
      -                      }
      -                    },
      -                    "required": [
      -                      "from",
      -                      "displacement",
      -                      "duration_s",
      -                      "anchor"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "layer": {
      -                    "enum": [
      -                      "behind_presenter"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "rect": {
      -                    "additionalProperties": false,
      -                    "description": "Where the phone settles, in shares of the frame.",
      -                    "properties": {
      -                      "height": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "left": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "top": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "width": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "left",
      -                      "top",
      -                      "width",
      -                      "height"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "rect_face": {
      -                    "additionalProperties": false,
      -                    "description": "The same place relative to the presenter's face: origin the face centre, unit the face height.",
      -                    "properties": {
      -                      "height": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 20,
      -                        "type": "number"
      -                      },
      -                      "left": {
      -                        "maximum": 20,
      -                        "minimum": -20,
      -                        "type": "number"
      -                      },
      -                      "top": {
      -                        "maximum": 20,
      -                        "minimum": -20,
      -                        "type": "number"
      -                      },
      -                      "width": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 20,
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "left",
      -                      "top",
      -                      "width",
      -                      "height"
      -                    ],
      -                    "type": "object"
      -                  }
      -                },
      -                "required": [
      -                  "rect"
      -                ],
      -                "type": "object"
      -              },
      -              "voices": {
      -                "additionalProperties": false,
      -                "description": "Voice names from list_voices; omitted means en_female_cassidy for the agent and en_male_mark for the caller.",
      -                "properties": {
      -                  "agent": {
      -                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                    "type": "string"
      -                  },
      -                  "caller": {
      -                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "after",
      -              "lines"
      -            ],
      -            "type": "object"
      -          },
      -          "caption_emphasis": {
      -            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi and accent draw color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      -            "items": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 40,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "look": {
      -                      "enum": [
      -                        "punch",
      -                        "pill",
      -                        "color"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "punch_in": {
      -                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      -                      "type": "boolean"
      -                    },
      -                    "quote": {
      -                      "maxLength": 40,
      -                      "minLength": 1,
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "quote"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 20,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "caption_mode": {
      -            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      -            "enum": [
      -              "full",
      -              "highlights"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_position": {
      -            "description": "Where captions sit: top, middle, lower or bottom (80% of the height). Omitted means the caption_style's own place. Requires captions=true.",
      -            "enum": [
      -              "top",
      -              "middle",
      -              "lower",
      -              "bottom"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_style": {
      -            "default": "hormozi",
      -            "description": "Caption look when captions=true. hormozi: the default: heavy white uppercase with a thick black outline, up to three words per cue, one keyword per cue in yellow (emphasised, else the longest non-stop-word). accent: condensed bold white uppercase, no outline, up to three words per cue, one keyword per cue in orange (emphasised, else the longest non-stop-word). tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif. Previews: https://clipwright.io/captions",
      -            "enum": [
      -              "hormozi",
      -              "accent",
      -              "tiktok",
      -              "youtube",
      -              "instagram",
      -              "minimalist",
      -              "neon",
      -              "genz",
      -              "campfire",
      -              "midnight",
      -              "plottwist",
      -              "headline",
      -              "promo",
      -              "lecture",
      -              "highlighter",
      -              "studio",
      -              "broadcast",
      -              "arcade",
      -              "clutch",
      -              "bubblegum",
      -              "crayon",
      -              "lyrics",
      -              "bassdrop",
      -              "punch",
      -              "minimal"
      -            ],
      -            "type": "string"
      -          },
      -          "captions": {
      -            "default": false,
      -            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      -            "type": "boolean"
      -          },
      -          "edit_sounds": {
      -            "description": "A low sound on every cut (insert, full-frame template, layout window, framing), its peak on the cut. Needs inserts, layout_windows or framing; template_sounds.edit picks it (list_template_sounds). Price unchanged.",
      -            "type": "boolean"
      -          },
      -          "framing": {
      -            "description": "Text-anchored presenter sizes: each cuts to close or medium on its words and back to the take where they end. Items may not overlap one another, an insert or a layout window. A framing drawn wholly under full-frame templates is named in warnings[]. Where a punch_in emphasis meets a framing, the framing is drawn. Requires script and long-form qualification on the server; the price does not change.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words the size holds, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays, layout_windows, templates and framing.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "size": {
      -                  "default": "close",
      -                  "description": "close: the presenter 1.18 times larger about the face; medium: the take as rendered.",
      -                  "enum": [
      -                    "close",
      -                    "medium"
      -                  ],
      -                  "type": "string"
      -                },
      -                "transition": {
      -                  "default": "cut",
      -                  "description": "cut: a hard cut to the size; flash: a warm light leak over the cut.",
      -                  "enum": [
      -                    "cut",
      -                    "flash"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 20,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "image": {
      -            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      -            "format": "starts_with",
      -            "maxLength": 2048,
      -            "pattern": "^https:\\/\\/.*",
      -            "type": "string"
      -          },
      -          "inserts": {
      -            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "transition": {
      -                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      -                  "enum": [
      -                    "cut",
      -                    "wipe",
      -                    "flash",
      -                    "zoom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 49,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "layout_windows": {
      -            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "blur_presenter": {
      -                  "description": "Card only: blur the presenter behind the card.",
      -                  "type": "boolean"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "layout": {
      -                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      -                  "enum": [
      -                    "split",
      -                    "card"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "layout"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "look": {
      -            "default": "natural",
      -            "enum": [
      -              "natural",
      -              "commercial",
      -              "raw_iphone"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "overlays": {
      -            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "position": {
      -                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      -                  "enum": [
      -                    "top_left",
      -                    "top_right",
      -                    "bottom_left",
      -                    "bottom_right",
      -                    "top",
      -                    "bottom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "position"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 10,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "pause_trim": {
      -            "additionalProperties": false,
      -            "description": "Shorten narration pauses longer than these seconds, cutting silence only.",
      -            "properties": {
      -              "comma_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              },
      -              "mid_phrase_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              },
      -              "sentence_end_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "person": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "presenter_framing": {
      -            "description": "close (default) or wide: presenter lower, room above. Needs the actor's wide view (list_actors), 9:16 only; else close plus warnings[].",
      -            "enum": [
      -              "close",
      -              "wide"
      -            ],
      -            "type": "string"
      -          },
      -          "presenter_mic": {
      -            "description": "true: presenter holds a tiny mic. Needs the actor's mic view in that framing (list_actors; library ones are wide); else no mic plus warnings[].",
      -            "type": "boolean"
      -          },
      -          "resolution": {
      -            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      -            "enum": [
      -              "720p",
      -              "1080p",
      -              "4k"
      -            ],
      -            "type": "string"
      -          },
      -          "script": {
      -            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "segments": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "duration_seconds": {
      -                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "actor",
      -                    "media"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "uri",
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "script": {
      -                  "maxLength": 10000,
      -                  "minLength": 1,
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "kind"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "template_sounds": {
      -            "anyOf": [
      -              {
      -                "const": false,
      -                "type": "boolean"
      -              },
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "answer": {
      -                    "enum": [
      -                      "answer_confirm",
      -                      "answer_open",
      -                      "answer_pop",
      -                      "answer_select",
      -                      "pickup"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "click": {
      -                    "enum": [
      -                      "click_mouse",
      -                      "click_soft",
      -                      "click_crisp",
      -                      "click_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "edit": {
      -                    "enum": [
      -                      "swell_hit",
      -                      "whoosh_deep",
      -                      "whoosh_low",
      -                      "boom_low",
      -                      "sub_drop",
      -                      "riser_boom",
      -                      "riser_hit"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "flash": {
      -                    "enum": [
      -                      "shutter",
      -                      "glitch",
      -                      "swish"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "hangup": {
      -                    "enum": [
      -                      "phone"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "money": {
      -                    "enum": [
      -                      "cash_register",
      -                      "coins"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "notify": {
      -                    "enum": [
      -                      "chime",
      -                      "glass_ping",
      -                      "glass_soft",
      -                      "bong",
      -                      "question_ping"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "pop": {
      -                    "enum": [
      -                      "plop"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "ring": {
      -                    "enum": [
      -                      "ring_classic",
      -                      "ring_marimba",
      -                      "ring_digital",
      -                      "ring_double"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "step": {
      -                    "enum": [
      -                      "drop",
      -                      "drop_high",
      -                      "tick",
      -                      "pluck",
      -                      "pluck_bright"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "toggle": {
      -                    "enum": [
      -                      "switch_flip",
      -                      "toggle_snap",
      -                      "switch_heavy",
      -                      "switch_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "whoosh": {
      -                    "enum": [
      -                      "whoosh",
      -                      "whip",
      -                      "paper_swipe",
      -                      "sweep",
      -                      "slide_quick"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            ],
      -            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      -          },
      -          "template_theme": {
      -            "additionalProperties": false,
      -            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      -            "properties": {
      -              "accent": {
      -                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      -                "pattern": "^#[0-9A-Fa-f]{6}$",
      -                "type": "string"
      -              },
      -              "preset": {
      -                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      -                "enum": [
      -                  "clean_light",
      -                  "bold_dark",
      -                  "neon",
      -                  "paper",
      -                  "mono"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "templates": {
      -            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: every run is billed by its parts as list_prices states them, and a presenter a template covers is still presenter time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs (or a hold banner shows); beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large, banner? ≤ 32, banner_note? ≤ 48, mask_number? true|false. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      -            "items": {
      -              "oneOf": [
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "position": {
      -                          "enum": [
      -                            "top",
      -                            "center",
      -                            "bottom"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "tag",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "name": {
      -                          "maxLength": 28,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "role": {
      -                          "maxLength": 36,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "name",
      -                        "side"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "lower_third",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "cta": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "site": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "site"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "end_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "chip": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "logo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "title"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "title_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "author": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "photo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 120,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "quote",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "prefix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "suffix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "value": {
      -                          "maximum": 999999999,
      -                          "minimum": 0,
      -                          "multipleOf": 0.01,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "value"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "stat",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "arrow",
      -                            "ring"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "target": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "x": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            "y": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            }
      -                          },
      -                          "required": [
      -                            "x",
      -                            "y"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "text": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "target",
      -                        "style"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "callout",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "clicks": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "item": {
      -                                "maximum": 3,
      -                                "minimum": 0,
      -                                "type": "integer"
      -                              },
      -                              "quote": {
      -                                "maxLength": 200,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "item"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 6,
      -                          "type": "array"
      -                        },
      -                        "items": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "icon": {
      -                                "enum": [
      -                                  "phone",
      -                                  "briefcase",
      -                                  "user",
      -                                  "clock",
      -                                  "chat",
      -                                  "star"
      -                                ],
      -                                "type": "string"
      -                              },
      -                              "label": {
      -                                "maxLength": 24,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              },
      -                              "on": {
      -                                "type": "boolean"
      -                              }
      -                            },
      -                            "required": [
      -                              "label",
      -                              "on"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 4,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "switch",
      -                            "check"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "items"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "checklist",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "answer_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "avatar": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "banner": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "banner_note": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "caller": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "mask_number": {
      -                          "type": "boolean"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "subtitle": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "caller",
      -                        "answer_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "phone_call",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "after": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "before": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "labels": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "after": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "before": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "type": "object"
      -                        },
      -                        "reveal_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "before",
      -                        "after",
      -                        "reveal_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "compare",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "app": {
      -                          "maxLength": 20,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "body": {
      -                          "maxLength": 80,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "icon": {
      -                          "enum": [
      -                            "phone",
      -                            "briefcase",
      -                            "user",
      -                            "clock",
      -                            "chat",
      -                            "star"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "app",
      -                        "title",
      -                        "body"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "notification",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "advance_at": {
      -                          "items": {
      -                            "maxLength": 200,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "steps": {
      -                          "items": {
      -                            "maxLength": 20,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        }
      -                      },
      -                      "required": [
      -                        "steps"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "progress",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "stars": {
      -                          "maximum": 5,
      -                          "minimum": 1,
      -                          "multipleOf": 0.5,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "stars"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "rating",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 12,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "tts_model": {
      -            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): gemini-3.8-flash-tts for its own voices, eleven_v4 for every preset, catalog voice and raw voice_id. An explicit tts_model wins, except eleven_v3: it is no longer spoken, and a run naming it speaks eleven_v4 with a warning. eleven_v4 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are a convention of the other speech models and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      -            "enum": [
      -              "eleven_v3",
      -              "eleven_flash_v2_5",
      -              "eleven_turbo_v2_5",
      -              "eleven_v4",
      -              "gemini-3.8-flash-tts"
      -            ],
      -            "type": "string"
      -          },
      -          "visible_ai_label": {
      -            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      -            "type": "boolean"
      -          },
      -          "voice": {
      -            "description": "Voice name from list_voices. Curated presets: sarah | george | eric | daria_ru_female. The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "voice_id": {
      -            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      -            "pattern": "^[A-Za-z0-9]{16,32}$",
      -            "type": "string"
      -          },
      -          "voice_pace": {
      -            "description": "Narration speed; 1 is the voice's own. gemini-3.8-flash-tts gets a style hint instead; eleven_v4 has no speed, so pick a voice by list_voices words_per_second; both named in warnings[].",
      -            "maximum": 1.2,
      -            "minimum": 0.7,
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "skill": {
      -        "const": "make_ugc",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "script",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "script": {
      -                "maxLength": 10000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "script"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brief": {
      -                "maxLength": 5000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "brief",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "brief"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "skill": {
      -        "const": "make_faceless",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "properties": {
      +      "input": {
      +        "description": "The make_ugc input: the same fields as quote_ugc.",
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_ugc",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "input": {
      +        "description": "The make_faceless input: the same fields as quote_faceless.",
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_faceless",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / document / properties / brief / properties / product / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / product / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / product / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / product / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / brief / properties / question / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / question / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / question / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / question / type
      Removed value: -"string"
    • removedInput schema / properties / document / properties / brief / properties / reference_profile / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / brief / properties / reference_profile / description
      Added value: +"The reference_profile field of a succeeded get_reference_analysis answer, passed unchanged."
    • removedInput schema / properties / document / properties / brief / properties / reference_profile / properties
      Removed value: -{
      -  "analysis": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cost_usd": {
      -        "minimum": 0,
      -        "type": "number"
      -      },
      -      "latency_ms": {
      -        "maximum": 9007199254740991,
      -        "minimum": 0,
      -        "type": "integer"
      -      },
      -      "models": {
      -        "items": {
      -          "maxLength": 60,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "warnings": {
      -        "description": "What the analysis could not measure, such as the voice pass; also in warnings[].",
      -        "items": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "maxItems": 8,
      -        "type": "array"
      -      }
      -    },
      -    "required": [
      -      "models",
      -      "latency_ms"
      -    ],
      -    "type": "object"
      -  },
      -  "beats": {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "camera": {
      -          "enum": [
      -            "static",
      -            "punch_in",
      -            "zoom_out",
      -            "shake",
      -            "other"
      -          ],
      -          "type": "string"
      -        },
      -        "end_frac": {
      -          "maximum": 1,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "end_s": {
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "graphics": {
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "kind": {
      -                "enum": [
      -                  "tag",
      -                  "lower_third",
      -                  "end_card",
      -                  "title_card",
      -                  "quote",
      -                  "stat",
      -                  "callout",
      -                  "checklist",
      -                  "phone_call",
      -                  "compare",
      -                  "notification",
      -                  "progress",
      -                  "rating",
      -                  "overlay_media",
      -                  "insert_media",
      -                  "layout_split",
      -                  "particles",
      -                  "unmapped"
      -                ],
      -                "type": "string"
      -              },
      -              "label_hint": {
      -                "description": "What the vision pass saw on it, in its words, such as \"Blue banner 'DEVELOP THE STORY'\"; empty when it gave none.",
      -                "maxLength": 120,
      -                "type": "string"
      -              },
      -              "position": {
      -                "enum": [
      -                  "full_screen",
      -                  "top",
      -                  "center",
      -                  "bottom",
      -                  "top_left",
      -                  "top_right",
      -                  "bottom_left",
      -                  "bottom_right",
      -                  "split_top",
      -                  "split_bottom",
      -                  "other"
      -                ],
      -                "type": "string"
      -              },
      -              "source_kind": {
      -                "description": "The analyser's own word for it, or other.",
      -                "enum": [
      -                  "toggle_checklist",
      -                  "phone_call",
      -                  "notification",
      -                  "before_after_split",
      -                  "split_screen",
      -                  "stat",
      -                  "product_ui",
      -                  "screenshot",
      -                  "title_card",
      -                  "end_card",
      -                  "particles",
      -                  "banner",
      -                  "logo_card",
      -                  "comment_box",
      -                  "price_card",
      -                  "concept_card",
      -                  "tag",
      -                  "lower_third",
      -                  "quote",
      -                  "callout",
      -                  "checklist",
      -                  "compare",
      -                  "progress",
      -                  "rating",
      -                  "overlay_media",
      -                  "insert_media",
      -                  "layout_split",
      -                  "unmapped",
      -                  "other"
      -                ],
      -                "type": "string"
      -              },
      -              "state_changes": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "at_frac": {
      -                      "description": "Share of the beat.",
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "change": {
      -                      "enum": [
      -                        "appears",
      -                        "disappears",
      -                        "toggles_on",
      -                        "toggles_off",
      -                        "checked",
      -                        "value_changes",
      -                        "highlighted",
      -                        "other"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "at_frac",
      -                    "change"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 12,
      -                "type": "array"
      -              }
      -            },
      -            "required": [
      -              "kind",
      -              "source_kind",
      -              "position",
      -              "state_changes",
      -              "label_hint"
      -            ],
      -            "type": "object"
      -          },
      -          "maxItems": 8,
      -          "type": "array"
      -        },
      -        "presenter_behaviour": {
      -          "enum": [
      -            "speaking",
      -            "listening",
      -            "reacting",
      -            "absent"
      -          ],
      -          "type": "string"
      -        },
      -        "role": {
      -          "enum": [
      -            "hook",
      -            "problem",
      -            "agitation",
      -            "solution",
      -            "demo",
      -            "proof",
      -            "before_after",
      -            "social_proof",
      -            "offer",
      -            "cta",
      -            "other"
      -          ],
      -          "type": "string"
      -        },
      -        "sounds": {
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "at_frac": {
      -                "maximum": 1,
      -                "minimum": 0,
      -                "type": "number"
      -              },
      -              "kind": {
      -                "enum": [
      -                  "click",
      -                  "toggle",
      -                  "ring",
      -                  "answer",
      -                  "notify",
      -                  "step",
      -                  "whoosh",
      -                  "flash",
      -                  "pop",
      -                  "hangup",
      -                  "money",
      -                  "edit",
      -                  "music",
      -                  "recorded_audio",
      -                  "other"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "at_frac",
      -              "kind"
      -            ],
      -            "type": "object"
      -          },
      -          "maxItems": 12,
      -          "type": "array"
      -        },
      -        "spoken_summary": {
      -          "description": "The words spoken in the beat, cut at 200 characters; empty when none were heard.",
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "start_frac": {
      -          "maximum": 1,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "start_s": {
      -          "description": "Seconds of the reference, kept as evidence only.",
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "transition_in": {
      -          "enum": [
      -            "none",
      -            "cut",
      -            "wipe",
      -            "flash",
      -            "zoom",
      -            "other"
      -          ],
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "start_frac",
      -        "end_frac",
      -        "start_s",
      -        "end_s",
      -        "role",
      -        "spoken_summary",
      -        "graphics",
      -        "camera",
      -        "transition_in",
      -        "sounds",
      -        "presenter_behaviour"
      -      ],
      -      "type": "object"
      -    },
      -    "maxItems": 40,
      -    "minItems": 1,
      -    "type": "array"
      -  },
      -  "captions": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "emphasis_style": {
      -        "enum": [
      -          "punch",
      -          "pill",
      -          "color",
      -          "none"
      -        ],
      -        "type": "string"
      -      },
      -      "hidden_under_graphics": {
      -        "type": "boolean"
      -      },
      -      "position": {
      -        "enum": [
      -          "top",
      -          "middle",
      -          "lower",
      -          "bottom"
      -        ],
      -        "type": "string"
      -      },
      -      "present": {
      -        "type": "boolean"
      -      },
      -      "words_per_caption_max": {
      -        "maximum": 12,
      -        "minimum": 1,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "present",
      -      "words_per_caption_max",
      -      "position",
      -      "emphasis_style",
      -      "hidden_under_graphics"
      -    ],
      -    "type": "object"
      -  },
      -  "format": {
      -    "enum": [
      -      "talking_head_graphics",
      -      "faceless",
      -      "broll",
      -      "other"
      -    ],
      -    "type": "string"
      -  },
      -  "hook": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "caption": {
      -        "description": "The first on-screen caption line the vision pass read inside the hook's window.",
      -        "maxLength": 120,
      -        "type": "string"
      -      },
      -      "end_s": {
      -        "description": "Where the hook's last word ends, else where its window does.",
      -        "minimum": 0,
      -        "type": "number"
      -      },
      -      "text": {
      -        "description": "The words that start in the first 3 s, through the end of their sentence (no word starting past 6 s); empty when none do.",
      -        "maxLength": 200,
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "text",
      -      "end_s"
      -    ],
      -    "type": "object"
      -  },
      -  "music": {
      -    "maxLength": 200,
      -    "type": "string"
      -  },
      -  "pacing": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "face_share": {
      -        "maximum": 1,
      -        "minimum": 0,
      -        "type": "number"
      -      },
      -      "layer_change_every_s": {
      -        "exclusiveMinimum": 0,
      -        "type": "number"
      -      }
      -    },
      -    "required": [
      -      "layer_change_every_s",
      -      "face_share"
      -    ],
      -    "type": "object"
      -  },
      -  "palette": {
      -    "items": {
      -      "pattern": "^#[0-9A-F]{6}$",
      -      "type": "string"
      -    },
      -    "maxItems": 8,
      -    "type": "array"
      -  },
      -  "presenter_framing": {
      -    "description": "wide: the top of the presenter's head is below ~35% of the frame height, with visible room above; close otherwise.",
      -    "enum": [
      -      "close",
      -      "wide"
      -    ],
      -    "type": "string"
      -  },
      -  "presenter_mic": {
      -    "description": "true when the presenter holds a small handheld or clip-on microphone in their hand while speaking (not clipped to clothing).",
      -    "type": "boolean"
      -  },
      -  "source": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "digest": {
      -        "pattern": "^sha256:[0-9a-f]{64}$",
      -        "type": "string"
      -      },
      -      "duration_s": {
      -        "exclusiveMinimum": 0,
      -        "type": "number"
      -      },
      -      "height": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "url": {
      -        "format": "uri",
      -        "maxLength": 2048,
      -        "type": "string"
      -      },
      -      "width": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "digest",
      -      "duration_s",
      -      "width",
      -      "height"
      -    ],
      -    "type": "object"
      -  },
      -  "staging": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "analysis_width": {
      -        "exclusiveMinimum": 0,
      -        "maximum": 9007199254740991,
      -        "type": "integer"
      -      },
      -      "anchors": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "id": {
      -              "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      -              "type": "string"
      -            },
      -            "t_s": {
      -              "minimum": 0,
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "t_s"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 80,
      -        "type": "array"
      -      },
      -      "elements": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "beat_index": {
      -              "maximum": 9007199254740991,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "entry": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchors": {
      -                  "items": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "id": {
      -                        "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      -                        "type": "string"
      -                      },
      -                      "offset_s": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "id",
      -                      "offset_s"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "maxItems": 3,
      -                  "type": "array"
      -                },
      -                "displacement": {
      -                  "additionalItems": false,
      -                  "description": "Settled minus first position, in shares of width and height.",
      -                  "items": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "number"
      -                    }
      -                  ],
      -                  "maxItems": 2,
      -                  "minItems": 2,
      -                  "type": "array"
      -                },
      -                "duration_s": {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "first_visible_s": {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "from": {
      -                  "enum": [
      -                    "left",
      -                    "right",
      -                    "top",
      -                    "bottom",
      -                    "lower_left",
      -                    "lower_right",
      -                    "upper_left",
      -                    "upper_right",
      -                    "none"
      -                  ],
      -                  "type": "string"
      -                },
      -                "method": {
      -                  "enum": [
      -                    "cv-cells/v1",
      -                    "cv-template/v1",
      -                    "cv-parallax/v1",
      -                    "cv-before-after/v1",
      -                    "yunet-native/v1",
      -                    "vision-video",
      -                    "vision-still"
      -                  ],
      -                  "type": "string"
      -                },
      -                "scale_from": {
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "settled_s": {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "style": {
      -                  "enum": [
      -                    "pop",
      -                    "fade",
      -                    "blur_in",
      -                    "slide",
      -                    "scale_up",
      -                    "tilt_in",
      -                    "typewriter",
      -                    "wipe",
      -                    "unknown"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "exit": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchors": {
      -                  "items": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "id": {
      -                        "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      -                        "type": "string"
      -                      },
      -                      "offset_s": {
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "id",
      -                      "offset_s"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "maxItems": 3,
      -                  "type": "array"
      -                },
      -                "displacement": {
      -                  "additionalItems": false,
      -                  "items": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "number"
      -                    }
      -                  ],
      -                  "maxItems": 2,
      -                  "minItems": 2,
      -                  "type": "array"
      -                },
      -                "duration_s": {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "last_visible_s": {
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "method": {
      -                  "enum": [
      -                    "cv-cells/v1",
      -                    "cv-template/v1",
      -                    "cv-parallax/v1",
      -                    "cv-before-after/v1",
      -                    "yunet-native/v1",
      -                    "vision-video",
      -                    "vision-still"
      -                  ],
      -                  "type": "string"
      -                },
      -                "style": {
      -                  "enum": [
      -                    "pop",
      -                    "fade",
      -                    "blur_in",
      -                    "slide",
      -                    "scale_up",
      -                    "tilt_in",
      -                    "typewriter",
      -                    "wipe",
      -                    "unknown",
      -                    "cut",
      -                    "flash"
      -                  ],
      -                  "type": "string"
      -                },
      -                "to": {
      -                  "enum": [
      -                    "left",
      -                    "right",
      -                    "top",
      -                    "bottom",
      -                    "lower_left",
      -                    "lower_right",
      -                    "upper_left",
      -                    "upper_right",
      -                    "none"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "graphic_index": {
      -              "anyOf": [
      -                {
      -                  "maximum": 9007199254740991,
      -                  "minimum": 0,
      -                  "type": "integer"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Its graphic in beats[beat_index].graphics; null when the beat pass missed it."
      -            },
      -            "id": {
      -              "pattern": "^[a-z0-9_]{1,24}$",
      -              "type": "string"
      -            },
      -            "kind": {
      -              "enum": [
      -                "toggle_checklist",
      -                "phone_call",
      -                "notification",
      -                "before_after_split",
      -                "split_screen",
      -                "stat",
      -                "product_ui",
      -                "screenshot",
      -                "title_card",
      -                "end_card",
      -                "particles",
      -                "banner",
      -                "logo_card",
      -                "comment_box",
      -                "price_card",
      -                "concept_card",
      -                "tag",
      -                "lower_third",
      -                "quote",
      -                "callout",
      -                "checklist",
      -                "compare",
      -                "progress",
      -                "rating",
      -                "overlay_media",
      -                "insert_media",
      -                "layout_split",
      -                "unmapped",
      -                "other"
      -              ],
      -              "type": "string"
      -            },
      -            "layer": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "blurs_presenter": {
      -                  "type": "boolean"
      -                },
      -                "covered_by": {
      -                  "items": {
      -                    "enum": [
      -                      "hair",
      -                      "face",
      -                      "shoulder",
      -                      "hand",
      -                      "body",
      -                      "chair",
      -                      "microphone",
      -                      "desk",
      -                      "other"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "maxItems": 6,
      -                  "type": "array"
      -                },
      -                "face_clear": {
      -                  "description": "The face core stays clear in every measured frame of the element's life.",
      -                  "type": "boolean"
      -                },
      -                "face_core_cover_max": {
      -                  "description": "The largest share of the face core the element covers in any measured frame.",
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "face_covered_share": {
      -                  "description": "The share of measured frames in which the element covers the face core.",
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "method": {
      -                  "enum": [
      -                    "cv-cells/v1",
      -                    "cv-template/v1",
      -                    "cv-parallax/v1",
      -                    "cv-before-after/v1",
      -                    "yunet-native/v1",
      -                    "vision-video",
      -                    "vision-still"
      -                  ],
      -                  "type": "string"
      -                },
      -                "value": {
      -                  "enum": [
      -                    "in_front_of_presenter",
      -                    "behind_presenter",
      -                    "no_overlap",
      -                    "presenter_absent",
      -                    "unknown"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "value",
      -                "method",
      -                "covered_by"
      -              ],
      -              "type": "object"
      -            },
      -            "motion": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "drift_per_s": {
      -                  "additionalItems": false,
      -                  "items": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "number"
      -                    }
      -                  ],
      -                  "maxItems": 2,
      -                  "minItems": 2,
      -                  "type": "array"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "static",
      -                    "float",
      -                    "drift",
      -                    "scale",
      -                    "moves_with_frame",
      -                    "pushed"
      -                  ],
      -                  "type": "string"
      -                },
      -                "scale_per_s": {
      -                  "type": "number"
      -                },
      -                "wobble": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amplitude": {
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "period_s": {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    }
      -                  },
      -                  "required": [
      -                    "amplitude",
      -                    "period_s"
      -                  ],
      -                  "type": "object"
      -                }
      -              },
      -              "type": "object"
      -            },
      -            "rect_hold": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "height": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "left": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "top": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "width": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "left",
      -                "top",
      -                "width",
      -                "height"
      -              ],
      -              "type": "object"
      -            },
      -            "rect_hold_face": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "height": {
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 20,
      -                  "type": "number"
      -                },
      -                "left": {
      -                  "maximum": 20,
      -                  "minimum": -20,
      -                  "type": "number"
      -                },
      -                "top": {
      -                  "maximum": 20,
      -                  "minimum": -20,
      -                  "type": "number"
      -                },
      -                "width": {
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 20,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "left",
      -                "top",
      -                "width",
      -                "height"
      -              ],
      -              "type": "object"
      -            },
      -            "rect_method": {
      -              "enum": [
      -                "cv-cells/v1",
      -                "cv-template/v1",
      -                "cv-parallax/v1",
      -                "cv-before-after/v1",
      -                "yunet-native/v1",
      -                "vision-video",
      -                "vision-still"
      -              ],
      -              "type": "string"
      -            },
      -            "rects": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "rect": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "height": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "left": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "top": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "width": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "left",
      -                      "top",
      -                      "width",
      -                      "height"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "t_s": {
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "visible": {
      -                    "maximum": 1,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "t_s",
      -                  "rect",
      -                  "visible"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 60,
      -              "type": "array"
      -            }
      -          },
      -          "required": [
      -            "id",
      -            "beat_index",
      -            "graphic_index",
      -            "kind"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 40,
      -        "type": "array"
      -      },
      -      "freezes": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "anchors": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "id": {
      -                    "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      -                    "type": "string"
      -                  },
      -                  "offset_s": {
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "id",
      -                  "offset_s"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 3,
      -              "type": "array"
      -            },
      -            "end_s": {
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "ends_with": {
      -              "enum": [
      -                "cut",
      -                "flash",
      -                "unfreeze",
      -                "end"
      -              ],
      -              "type": "string"
      -            },
      -            "expression": {
      -              "enum": [
      -                "neutral",
      -                "smile",
      -                "surprised",
      -                "thinking",
      -                "other"
      -              ],
      -              "type": "string"
      -            },
      -            "face_box_end": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "height": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "left": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "top": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "width": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "left",
      -                "top",
      -                "width",
      -                "height"
      -              ],
      -              "type": "object"
      -            },
      -            "face_box_start": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "height": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "left": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "top": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                },
      -                "width": {
      -                  "maximum": 1,
      -                  "minimum": 0,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "left",
      -                "top",
      -                "width",
      -                "height"
      -              ],
      -              "type": "object"
      -            },
      -            "frame_motion": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "centre_shift": {
      -                  "additionalItems": false,
      -                  "items": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "number"
      -                    }
      -                  ],
      -                  "maxItems": 2,
      -                  "minItems": 2,
      -                  "type": "array"
      -                },
      -                "scale_end": {
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 4,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "scale_end",
      -                "centre_shift"
      -              ],
      -              "type": "object"
      -            },
      -            "gaze": {
      -              "enum": [
      -                "camera",
      -                "up_left",
      -                "up_right",
      -                "left",
      -                "right",
      -                "down",
      -                "element",
      -                "closed"
      -              ],
      -              "type": "string"
      -            },
      -            "hands": {
      -              "enum": [
      -                "at_chest",
      -                "gesturing",
      -                "out_of_frame",
      -                "other"
      -              ],
      -              "type": "string"
      -            },
      -            "head_roll": {
      -              "enum": [
      -                "left",
      -                "right",
      -                "upright"
      -              ],
      -              "type": "string"
      -            },
      -            "pitch": {
      -              "maximum": 3,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "roll_deg": {
      -              "maximum": 90,
      -              "minimum": -90,
      -              "type": "number"
      -            },
      -            "start_s": {
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "yaw": {
      -              "maximum": 3,
      -              "minimum": -3,
      -              "type": "number"
      -            }
      -          },
      -          "required": [
      -            "start_s",
      -            "end_s",
      -            "anchors",
      -            "face_box_start",
      -            "face_box_end",
      -            "roll_deg",
      -            "yaw",
      -            "pitch",
      -            "head_roll",
      -            "ends_with"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 8,
      -        "type": "array"
      -      },
      -      "version": {
      -        "const": "reference-staging-v1",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "analysis_width",
      -      "anchors",
      -      "elements",
      -      "freezes"
      -    ],
      -    "type": "object"
      -  },
      -  "transcript": {
      -    "description": "The reference's speech as timed words, in order.",
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "end_s": {
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "speaker": {
      -          "description": "The transcription's speaker label, such as speaker_0; absent when it gave none.",
      -          "maxLength": 40,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "start_s": {
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        "text": {
      -          "maxLength": 64,
      -          "minLength": 1,
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "text",
      -        "start_s",
      -        "end_s"
      -      ],
      -      "type": "object"
      -    },
      -    "maxItems": 1000,
      -    "type": "array"
      -  },
      -  "unmapped": {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "beat_index": {
      -          "maximum": 9007199254740991,
      -          "minimum": 0,
      -          "type": "integer"
      -        },
      -        "suggested_substitute": {
      -          "maxLength": 200,
      -          "type": "string"
      -        },
      -        "what": {
      -          "maxLength": 200,
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "what",
      -        "beat_index",
      -        "suggested_substitute"
      -      ],
      -      "type": "object"
      -    },
      -    "maxItems": 40,
      -    "type": "array"
      -  },
      -  "version": {
      -    "const": "reference-profile-v1",
      -    "type": "string"
      -  },
      -  "voice": {
      -    "additionalProperties": false,
      -    "properties": {
      -      "method": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "cut_safe_db": {
      -            "exclusiveMaximum": 0,
      -            "type": "number"
      -          },
      -          "pause_drop_db": {
      -            "exclusiveMinimum": 0,
      -            "type": "number"
      -          },
      -          "pause_min_run_s": {
      -            "exclusiveMinimum": 0,
      -            "type": "number"
      -          },
      -          "pitch": {
      -            "const": "yin",
      -            "type": "string"
      -          },
      -          "sample_rate": {
      -            "exclusiveMinimum": 0,
      -            "maximum": 9007199254740991,
      -            "type": "integer"
      -          }
      -        },
      -        "required": [
      -          "pause_drop_db",
      -          "pause_min_run_s",
      -          "cut_safe_db",
      -          "pitch",
      -          "sample_rate"
      -        ],
      -        "type": "object"
      -      },
      -      "presenter_speaker": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "speakers": {
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "hinge": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "coverage": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "evaluated_sentences": {
      -                  "maximum": 9007199254740991,
      -                  "minimum": 0,
      -                  "type": "integer"
      -                },
      -                "median_position": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Where the hinge falls, as the share of the sentence's words before it."
      -                },
      -                "median_seconds": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "sentence_share": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Share of acoustically evaluated sentences with an internal pause of 150 ms or more; not all sentences."
      -                },
      -                "status": {
      -                  "enum": [
      -                    "measured",
      -                    "not_evaluated"
      -                  ],
      -                  "type": "string"
      -                },
      -                "timestamp_sentence_share": {
      -                  "anyOf": [
      -                    {
      -                      "maximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                }
      -              },
      -              "required": [
      -                "status",
      -                "sentence_share",
      -                "evaluated_sentences",
      -                "coverage",
      -                "timestamp_sentence_share",
      -                "median_position",
      -                "median_seconds"
      -              ],
      -              "type": "object"
      -            },
      -            "long_pause_count": {
      -              "description": "Same-speaker pauses over two seconds, kept with their punctuation kind.",
      -              "maximum": 9007199254740991,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "loudness": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "range_db_p10_p90": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "status": {
      -                  "enum": [
      -                    "measured",
      -                    "unmeasured"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "status",
      -                "range_db_p10_p90"
      -              ],
      -              "type": "object"
      -            },
      -            "pace": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "basis": {
      -                  "enum": [
      -                    "sentence_spans",
      -                    "turn_spans"
      -                  ],
      -                  "type": "string"
      -                },
      -                "status": {
      -                  "enum": [
      -                    "measured",
      -                    "unmeasured"
      -                  ],
      -                  "type": "string"
      -                },
      -                "words_per_second": {
      -                  "anyOf": [
      -                    {
      -                      "exclusiveMinimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Words over the sum of sentence spans: pauses inside a sentence count, gaps between sentences and other speakers do not."
      -                }
      -              },
      -              "required": [
      -                "status",
      -                "words_per_second",
      -                "basis"
      -              ],
      -              "type": "object"
      -            },
      -            "pauses": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "comma": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "acoustic_no_dip_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "acoustic_pause": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "acoustic_unconfirmed_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "cut_safe": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "timestamp": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  },
      -                  "required": [
      -                    "timestamp",
      -                    "acoustic_pause",
      -                    "cut_safe",
      -                    "acoustic_no_dip_count",
      -                    "acoustic_unconfirmed_count"
      -                  ],
      -                  "type": "object"
      -                },
      -                "mid_phrase": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "acoustic_no_dip_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "acoustic_pause": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "acoustic_unconfirmed_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "cut_safe": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "timestamp": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  },
      -                  "required": [
      -                    "timestamp",
      -                    "acoustic_pause",
      -                    "cut_safe",
      -                    "acoustic_no_dip_count",
      -                    "acoustic_unconfirmed_count"
      -                  ],
      -                  "type": "object"
      -                },
      -                "sentence_end": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "acoustic_no_dip_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "acoustic_pause": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "acoustic_unconfirmed_count": {
      -                      "maximum": 9007199254740991,
      -                      "minimum": 0,
      -                      "type": "integer"
      -                    },
      -                    "cut_safe": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "timestamp": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "count": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "count_ge150ms": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "median_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "p90_s": {
      -                          "anyOf": [
      -                            {
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        }
      -                      },
      -                      "required": [
      -                        "count",
      -                        "median_s",
      -                        "p90_s",
      -                        "count_ge150ms"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  },
      -                  "required": [
      -                    "timestamp",
      -                    "acoustic_pause",
      -                    "cut_safe",
      -                    "acoustic_no_dip_count",
      -                    "acoustic_unconfirmed_count"
      -                  ],
      -                  "type": "object"
      -                }
      -              },
      -              "required": [
      -                "sentence_end",
      -                "comma",
      -                "mid_phrase"
      -              ],
      -              "type": "object"
      -            },
      -            "pitch": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "ceiling_basis": {
      -                  "description": "default 400 Hz; low_f0: a median under 165 Hz at 400 is measured again at 300 Hz.",
      -                  "enum": [
      -                    "default",
      -                    "low_f0",
      -                    "configured"
      -                  ],
      -                  "type": "string"
      -                },
      -                "ceiling_hz": {
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "median_hz": {
      -                  "anyOf": [
      -                    {
      -                      "exclusiveMinimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "p10_hz": {
      -                  "anyOf": [
      -                    {
      -                      "exclusiveMinimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "p90_hz": {
      -                  "anyOf": [
      -                    {
      -                      "exclusiveMinimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "range_st": {
      -                  "anyOf": [
      -                    {
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "status": {
      -                  "enum": [
      -                    "measured",
      -                    "no_voiced_frames"
      -                  ],
      -                  "type": "string"
      -                },
      -                "voiced_frames": {
      -                  "maximum": 9007199254740991,
      -                  "minimum": 0,
      -                  "type": "integer"
      -                }
      -              },
      -              "required": [
      -                "status",
      -                "ceiling_hz",
      -                "ceiling_basis",
      -                "median_hz",
      -                "p10_hz",
      -                "p90_hz",
      -                "range_st",
      -                "voiced_frames"
      -              ],
      -              "type": "object"
      -            },
      -            "sentence_count": {
      -              "maximum": 9007199254740991,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "speaker": {
      -              "description": "The transcription vendor's speaker id.",
      -              "pattern": "^[A-Za-z0-9_-]{1,40}$",
      -              "type": "string"
      -            },
      -            "warnings": {
      -              "items": {
      -                "enum": [
      -                  "no_sentence_terminal_punctuation_pace_uses_turn_spans",
      -                  "background_music_present_f0_and_intensity_may_be_contaminated"
      -                ],
      -                "type": "string"
      -              },
      -              "maxItems": 2,
      -              "type": "array"
      -            },
      -            "word_count": {
      -              "maximum": 9007199254740991,
      -              "minimum": 0,
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "speaker",
      -            "word_count",
      -            "sentence_count",
      -            "pace",
      -            "pauses",
      -            "long_pause_count",
      -            "hinge",
      -            "pitch",
      -            "loudness",
      -            "warnings"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 6,
      -        "minItems": 1,
      -        "type": "array"
      -      },
      -      "version": {
      -        "const": "voice-profile-v1",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "version",
      -      "method",
      -      "presenter_speaker",
      -      "speakers"
      -    ],
      -    "type": "object"
      -  }
      -}
    • removedInput schema / properties / document / properties / brief / properties / reference_profile / required
      Removed value: -[
      -  "version",
      -  "source",
      -  "format",
      -  "beats",
      -  "captions",
      -  "pacing",
      -  "palette",
      -  "music",
      -  "unmapped",
      -  "analysis"
      -]
    • addedInput schema / properties / document / properties / brief / properties / references / items / $ref
      Added value: +"#/$defs/d0"
    • removedInput schema / properties / document / properties / brief / properties / references / items / additionalProperties
      Removed value: -false
    • removedInput schema / properties / document / properties / brief / properties / references / items / properties
      Removed value: -{
      -  "kind": {
      -    "enum": [
      -      "owner",
      -      "url",
      -      "capture"
      -    ],
      -    "type": "string"
      -  },
      -  "observed_at": {
      -    "format": "date-time",
      -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -    "type": "string"
      -  },
      -  "product_state": {
      -    "maxLength": 2000,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "reference": {
      -    "maxLength": 2000,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "url": {
      -    "format": "uri",
      -    "maxLength": 2048,
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / document / properties / brief / properties / references / items / required
      Removed value: -[
      -  "kind",
      -  "reference"
      -]
    • removedInput schema / properties / document / properties / brief / properties / references / items / type
      Removed value: -"object"
    • removedInput schema / properties / document / properties / brief / properties / requested_format / additionalProperties
      Removed value: -false
    • removedInput schema / properties / document / properties / brief / properties / requirements / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / brief / properties / topic / $ref
      Added value: +"#/$defs/d2"
    • removedInput schema / properties / document / properties / brief / properties / topic / maxLength
      Removed value: -2000
    • removedInput schema / properties / document / properties / brief / properties / topic / minLength
      Removed value: -1
    • removedInput schema / properties / document / properties / brief / properties / topic / type
      Removed value: -"string"
    • removedInput schema / properties / document / properties / claims / items / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / claims / items / properties / id / $ref
      Added value: +"#/$defs/d3"
    • removedInput schema / properties / document / properties / claims / items / properties / id / pattern
      Removed value: -"^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$"
    • removedInput schema / properties / document / properties / claims / items / properties / id / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / claims / items / properties / source / $ref
      Added value: +"#/$defs/d0"
    • removedInput schema / properties / document / properties / claims / items / properties / source / additionalProperties
      Removed value: -false
    • removedInput schema / properties / document / properties / claims / items / properties / source / properties
      Removed value: -{
      -  "kind": {
      -    "enum": [
      -      "owner",
      -      "url",
      -      "capture"
      -    ],
      -    "type": "string"
      -  },
      -  "observed_at": {
      -    "format": "date-time",
      -    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -    "type": "string"
      -  },
      -  "product_state": {
      -    "maxLength": 2000,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "reference": {
      -    "maxLength": 2000,
      -    "minLength": 1,
      -    "type": "string"
      -  },
      -  "url": {
      -    "format": "uri",
      -    "maxLength": 2048,
      -    "type": "string"
      -  }
      -}
    • removedInput schema / properties / document / properties / claims / items / properties / source / required
      Removed value: -[
      -  "kind",
      -  "reference"
      -]
    • removedInput schema / properties / document / properties / claims / items / properties / source / type
      Removed value: -"object"
    • removedInput schema / properties / document / properties / method / additionalProperties
      Removed value: -false
    • addedInput schema / properties / document / properties / method / properties / capability_digest / $ref
      Added value: +"#/$defs/d4"
    • removedInput schema / properties / document / properties / method / properties / capability_digest / pattern
      Removed value: -"^[a-f0-9]{64}$"
    • removedInput schema / properties / document / properties / method / properties / capability_digest / type
      Removed value: -"string"
    • addedInput schema / properties / document / properties / method / properties / content_digest / $ref
      Added value: +"#/$defs/d4"
    • removedInput schema / properties / document / properties / method / properties / content_digest / pattern
      Removed value: -"^[a-f0-9]{64}$"
    • removedInput schema / properties / document / properties / method / properties / content_digest / type
      Removed value: -"string"
    • removedInput schema / properties / document / properties / method / properties / version / maximum
      Removed value: -9007199254740991
  3. Changed7 schema fields changedv0.36.0
    • changedInput schema / properties / document / properties / brief / properties / native / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actor_gender": {
      -            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      -            "enum": [
      -              "female",
      -              "male"
      -            ],
      -            "type": "string"
      -          },
      -          "actor_id": {
      -            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      -            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "aspect_ratio": {
      -            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      -            "enum": [
      -              "9:16",
      -              "1:1",
      -              "16:9"
      -            ],
      -            "type": "string"
      -          },
      -          "background": {
      -            "enum": [
      -              "white",
      -              "blur",
      -              "contain"
      -            ],
      -            "type": "string"
      -          },
      -          "broll_policy": {
      -            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      -            "enum": [
      -              "anyone",
      -              "no_actor",
      -              "no_people"
      -            ],
      -            "type": "string"
      -          },
      -          "call": {
      -            "additionalProperties": false,
      -            "description": "A phone call after a quote: the presenter listens, then freezes while the call plays as a phone line, with a ring first, and an in-call phone beside them shows it (a phone_call template covering the call is used instead). Needs script, a 9:16 frame and words after it. The frozen presenter and the call add production seconds, not presenter seconds, and a live-avatar still shown on the call has its own price in list_prices. Long-form qualification on the server.",
      -            "properties": {
      -              "after": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "endWord": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 9007199254740991,
      -                        "type": "integer"
      -                      },
      -                      "startWord": {
      -                        "maximum": 9007199254740991,
      -                        "minimum": 0,
      -                        "type": "integer"
      -                      }
      -                    },
      -                    "required": [
      -                      "startWord",
      -                      "endWord"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "occurrence": {
      -                        "maximum": 9007199254740991,
      -                        "minimum": 0,
      -                        "type": "integer"
      -                      },
      -                      "quote": {
      -                        "maxLength": 10000,
      -                        "minLength": 1,
      -                        "type": "string"
      -                      }
      -                    },
      -                    "required": [
      -                      "quote"
      -                    ],
      -                    "type": "object"
      -                  }
      -                ],
      -                "description": "The words the call follows: the presenter stops after the quote's last word and resumes on the next one."
      -              },
      -              "lines": {
      -                "description": "The call's turns in order, from both speakers; at most 1500 characters and about 45 s in all.",
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "speaker": {
      -                      "enum": [
      -                        "agent",
      -                        "caller"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "text": {
      -                      "maxLength": 400,
      -                      "minLength": 1,
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "speaker",
      -                    "text"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 12,
      -                "minItems": 2,
      -                "type": "array"
      -              },
      -              "phone": {
      -                "additionalProperties": false,
      -                "description": "The in-call phone drawn over the call when no phone_call template covers it; omitted fields are +1 (305) 555-0147 with its digits after the area code masked, \"Hold This Call?\" and \"You'll be notified to pick up.\".",
      -                "properties": {
      -                  "banner": {
      -                    "maxLength": 32,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "banner_note": {
      -                    "maxLength": 48,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "caller": {
      -                    "maxLength": 24,
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "mask_number": {
      -                    "type": "boolean"
      -                  }
      -                },
      -                "type": "object"
      -              },
      -              "stage": {
      -                "additionalProperties": false,
      -                "description": "Where the in-call phone settles and how it rises, as a reference measured them (plan_reference_remake writes it); omitted is the reference call scene's own place and rise.",
      -                "properties": {
      -                  "enter": {
      -                    "additionalProperties": false,
      -                    "properties": {
      -                      "anchor": {
      -                        "additionalProperties": false,
      -                        "description": "When the rise starts: seconds from the call's freeze, negative before it.",
      -                        "properties": {
      -                          "id": {
      -                            "const": "freeze_start#1",
      -                            "type": "string"
      -                          },
      -                          "offset_s": {
      -                            "maximum": 0,
      -                            "minimum": -10,
      -                            "type": "number"
      -                          }
      -                        },
      -                        "required": [
      -                          "id",
      -                          "offset_s"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      "displacement": {
      -                        "additionalItems": false,
      -                        "description": "Settled minus first position, in shares of width and height.",
      -                        "items": [
      -                          {
      -                            "maximum": 1,
      -                            "minimum": -1,
      -                            "type": "number"
      -                          },
      -                          {
      -                            "maximum": 1,
      -                            "minimum": -1,
      -                            "type": "number"
      -                          }
      -                        ],
      -                        "maxItems": 2,
      -                        "minItems": 2,
      -                        "type": "array"
      -                      },
      -                      "duration_s": {
      -                        "maximum": 5,
      -                        "minimum": 0.1,
      -                        "type": "number"
      -                      },
      -                      "from": {
      -                        "enum": [
      -                          "bottom",
      -                          "lower_left",
      -                          "lower_right"
      -                        ],
      -                        "type": "string"
      -                      }
      -                    },
      -                    "required": [
      -                      "from",
      -                      "displacement",
      -                      "duration_s",
      -                      "anchor"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "layer": {
      -                    "enum": [
      -                      "behind_presenter"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "rect": {
      -                    "additionalProperties": false,
      -                    "description": "Where the phone settles, in shares of the frame.",
      -                    "properties": {
      -                      "height": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "left": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "top": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      "width": {
      -                        "maximum": 1,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "left",
      -                      "top",
      -                      "width",
      -                      "height"
      -                    ],
      -                    "type": "object"
      -                  },
      -                  "rect_face": {
      -                    "additionalProperties": false,
      -                    "description": "The same place relative to the presenter's face: origin the face centre, unit the face height.",
      -                    "properties": {
      -                      "height": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 20,
      -                        "type": "number"
      -                      },
      -                      "left": {
      -                        "maximum": 20,
      -                        "minimum": -20,
      -                        "type": "number"
      -                      },
      -                      "top": {
      -                        "maximum": 20,
      -                        "minimum": -20,
      -                        "type": "number"
      -                      },
      -                      "width": {
      -                        "exclusiveMinimum": 0,
      -                        "maximum": 20,
      -                        "type": "number"
      -                      }
      -                    },
      -                    "required": [
      -                      "left",
      -                      "top",
      -                      "width",
      -                      "height"
      -                    ],
      -                    "type": "object"
      -                  }
      -                },
      -                "required": [
      -                  "rect"
      -                ],
      -                "type": "object"
      -              },
      -              "voices": {
      -                "additionalProperties": false,
      -                "description": "Voice names from list_voices; omitted means en_female_cassidy for the agent and en_male_mark for the caller.",
      -                "properties": {
      -                  "agent": {
      -                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                    "type": "string"
      -                  },
      -                  "caller": {
      -                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            },
      -            "required": [
      -              "after",
      -              "lines"
      -            ],
      -            "type": "object"
      -          },
      -          "caption_emphasis": {
      -            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi and accent draw color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      -            "items": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 40,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "look": {
      -                      "enum": [
      -                        "punch",
      -                        "pill",
      -                        "color"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "punch_in": {
      -                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      -                      "type": "boolean"
      -                    },
      -                    "quote": {
      -                      "maxLength": 40,
      -                      "minLength": 1,
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "quote"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 20,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "caption_mode": {
      -            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      -            "enum": [
      -              "full",
      -              "highlights"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_position": {
      -            "description": "Where captions sit: top, middle, lower or bottom (80% of the height). Omitted means the caption_style's own place. Requires captions=true.",
      -            "enum": [
      -              "top",
      -              "middle",
      -              "lower",
      -              "bottom"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_style": {
      -            "default": "hormozi",
      -            "description": "Caption look when captions=true. hormozi: the default: heavy white uppercase with a thick black outline, up to three words per cue, one keyword per cue in yellow (emphasised, else the longest non-stop-word). accent: condensed bold white uppercase, no outline, up to three words per cue, one keyword per cue in orange (emphasised, else the longest non-stop-word). tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif. Previews: https://clipwright.io/captions",
      -            "enum": [
      -              "hormozi",
      -              "accent",
      -              "tiktok",
      -              "youtube",
      -              "instagram",
      -              "minimalist",
      -              "neon",
      -              "genz",
      -              "campfire",
      -              "midnight",
      -              "plottwist",
      -              "headline",
      -              "promo",
      -              "lecture",
      -              "highlighter",
      -              "studio",
      -              "broadcast",
      -              "arcade",
      -              "clutch",
      -              "bubblegum",
      -              "crayon",
      -              "lyrics",
      -              "bassdrop",
      -              "punch",
      -              "minimal"
      -            ],
      -            "type": "string"
      -          },
      -          "captions": {
      -            "default": false,
      -            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      -            "type": "boolean"
      -          },
      -          "edit_sounds": {
      -            "description": "A low sound on every cut (insert, full-frame template, layout window, framing), its peak on the cut. Needs inserts, layout_windows or framing; template_sounds.edit picks it (list_template_sounds). Price unchanged.",
      -            "type": "boolean"
      -          },
      -          "framing": {
      -            "description": "Text-anchored presenter sizes: each cuts to close or medium on its words and back to the take where they end. Items may not overlap one another, an insert or a layout window. A framing drawn wholly under full-frame templates is named in warnings[]. Where a punch_in emphasis meets a framing, the framing is drawn. Requires script and long-form qualification on the server; the price does not change.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words the size holds, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays, layout_windows, templates and framing.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "size": {
      -                  "default": "close",
      -                  "description": "close: the presenter 1.18 times larger about the face; medium: the take as rendered.",
      -                  "enum": [
      -                    "close",
      -                    "medium"
      -                  ],
      -                  "type": "string"
      -                },
      -                "transition": {
      -                  "default": "cut",
      -                  "description": "cut: a hard cut to the size; flash: a warm light leak over the cut.",
      -                  "enum": [
      -                    "cut",
      -                    "flash"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 20,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "image": {
      -            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      -            "format": "starts_with",
      -            "maxLength": 2048,
      -            "pattern": "^https:\\/\\/.*",
      -            "type": "string"
      -          },
      -          "inserts": {
      -            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "transition": {
      -                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      -                  "enum": [
      -                    "cut",
      -                    "wipe",
      -                    "flash",
      -                    "zoom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 49,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "layout_windows": {
      -            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "blur_presenter": {
      -                  "description": "Card only: blur the presenter behind the card.",
      -                  "type": "boolean"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "layout": {
      -                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      -                  "enum": [
      -                    "split",
      -                    "card"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "layout"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "look": {
      -            "default": "natural",
      -            "enum": [
      -              "natural",
      -              "commercial",
      -              "raw_iphone"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "overlays": {
      -            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "position": {
      -                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      -                  "enum": [
      -                    "top_left",
      -                    "top_right",
      -                    "bottom_left",
      -                    "bottom_right",
      -                    "top",
      -                    "bottom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "position"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 10,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "pause_trim": {
      -            "additionalProperties": false,
      -            "description": "Shorten narration pauses longer than these seconds, cutting silence only.",
      -            "properties": {
      -              "comma_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              },
      -              "mid_phrase_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              },
      -              "sentence_end_s": {
      -                "maximum": 2,
      -                "minimum": 0.05,
      -                "type": "number"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "person": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "presenter_framing": {
      -            "description": "close (default) or wide: presenter lower, room above. Needs the actor's wide view (list_actors), 9:16 only; else close plus warnings[].",
      -            "enum": [
      -              "close",
      -              "wide"
      -            ],
      -            "type": "string"
      -          },
      -          "presenter_mic": {
      -            "description": "true: presenter holds a tiny mic. Needs the actor's mic view in that framing (list_actors; library ones are wide); else no mic plus warnings[].",
      -            "type": "boolean"
      -          },
      -          "resolution": {
      -            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      -            "enum": [
      -              "720p",
      -              "1080p",
      -              "4k"
      -            ],
      -            "type": "string"
      -          },
      -          "script": {
      -            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "segments": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "duration_seconds": {
      -                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "actor",
      -                    "media"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "uri",
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "script": {
      -                  "maxLength": 10000,
      -                  "minLength": 1,
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "kind"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "template_sounds": {
      -            "anyOf": [
      -              {
      -                "const": false,
      -                "type": "boolean"
      -              },
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "answer": {
      -                    "enum": [
      -                      "answer_confirm",
      -                      "answer_open",
      -                      "answer_pop",
      -                      "answer_select",
      -                      "pickup"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "click": {
      -                    "enum": [
      -                      "click_mouse",
      -                      "click_soft",
      -                      "click_crisp",
      -                      "click_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "edit": {
      -                    "enum": [
      -                      "swell_hit",
      -                      "whoosh_deep",
      -                      "whoosh_low",
      -                      "boom_low",
      -                      "sub_drop",
      -                      "riser_boom",
      -                      "riser_hit"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "flash": {
      -                    "enum": [
      -                      "shutter",
      -                      "glitch",
      -                      "swish"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "hangup": {
      -                    "enum": [
      -                      "phone"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "money": {
      -                    "enum": [
      -                      "cash_register",
      -                      "coins"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "notify": {
      -                    "enum": [
      -                      "chime",
      -                      "glass_ping",
      -                      "glass_soft",
      -                      "bong",
      -                      "question_ping"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "pop": {
      -                    "enum": [
      -                      "plop"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "ring": {
      -                    "enum": [
      -                      "ring_classic",
      -                      "ring_marimba",
      -                      "ring_digital",
      -                      "ring_double"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "step": {
      -                    "enum": [
      -                      "drop",
      -                      "drop_high",
      -                      "tick",
      -                      "pluck",
      -                      "pluck_bright"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "toggle": {
      -                    "enum": [
      -                      "switch_flip",
      -                      "toggle_snap",
      -                      "switch_heavy",
      -                      "switch_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "whoosh": {
      -                    "enum": [
      -                      "whoosh",
      -                      "whip",
      -                      "paper_swipe",
      -                      "sweep",
      -                      "slide_quick"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            ],
      -            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      -          },
      -          "template_theme": {
      -            "additionalProperties": false,
      -            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      -            "properties": {
      -              "accent": {
      -                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      -                "pattern": "^#[0-9A-Fa-f]{6}$",
      -                "type": "string"
      -              },
      -              "preset": {
      -                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      -                "enum": [
      -                  "clean_light",
      -                  "bold_dark",
      -                  "neon",
      -                  "paper",
      -                  "mono"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "templates": {
      -            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: every run is billed by its parts as list_prices states them, and a presenter a template covers is still presenter time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs (or a hold banner shows); beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large, banner? ≤ 32, banner_note? ≤ 48, mask_number? true|false. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      -            "items": {
      -              "oneOf": [
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "position": {
      -                          "enum": [
      -                            "top",
      -                            "center",
      -                            "bottom"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "tag",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "name": {
      -                          "maxLength": 28,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "role": {
      -                          "maxLength": 36,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "name",
      -                        "side"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "lower_third",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "cta": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "site": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "site"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "end_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "chip": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "logo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "title"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "title_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "author": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "photo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 120,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "quote",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "prefix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "suffix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "value": {
      -                          "maximum": 999999999,
      -                          "minimum": 0,
      -                          "multipleOf": 0.01,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "value"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "stat",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "arrow",
      -                            "ring"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "target": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "x": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            "y": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            }
      -                          },
      -                          "required": [
      -                            "x",
      -                            "y"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "text": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "target",
      -                        "style"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "callout",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "clicks": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "item": {
      -                                "maximum": 3,
      -                                "minimum": 0,
      -                                "type": "integer"
      -                              },
      -                              "quote": {
      -                                "maxLength": 200,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "item"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 6,
      -                          "type": "array"
      -                        },
      -                        "items": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "icon": {
      -                                "enum": [
      -                                  "phone",
      -                                  "briefcase",
      -                                  "user",
      -                                  "clock",
      -                                  "chat",
      -                                  "star"
      -                                ],
      -                                "type": "string"
      -                              },
      -                              "label": {
      -                                "maxLength": 24,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              },
      -                              "on": {
      -                                "type": "boolean"
      -                              }
      -                            },
      -                            "required": [
      -                              "label",
      -                              "on"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 4,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "switch",
      -                            "check"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "items"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "checklist",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "answer_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "avatar": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "banner": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "banner_note": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "caller": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "mask_number": {
      -                          "type": "boolean"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "subtitle": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "caller",
      -                        "answer_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "phone_call",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "after": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "before": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "labels": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "after": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "before": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "type": "object"
      -                        },
      -                        "reveal_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "before",
      -                        "after",
      -                        "reveal_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "compare",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "app": {
      -                          "maxLength": 20,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "body": {
      -                          "maxLength": 80,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "icon": {
      -                          "enum": [
      -                            "phone",
      -                            "briefcase",
      -                            "user",
      -                            "clock",
      -                            "chat",
      -                            "star"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "app",
      -                        "title",
      -                        "body"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "notification",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "advance_at": {
      -                          "items": {
      -                            "maxLength": 200,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "steps": {
      -                          "items": {
      -                            "maxLength": 20,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        }
      -                      },
      -                      "required": [
      -                        "steps"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "progress",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "stars": {
      -                          "maximum": 5,
      -                          "minimum": 1,
      -                          "multipleOf": 0.5,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "stars"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "rating",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 12,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "tts_model": {
      -            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): gemini-3.8-flash-tts for its own voices, eleven_v4 for every preset, catalog voice and raw voice_id. An explicit tts_model wins, except eleven_v3: it is no longer spoken, and a run naming it speaks eleven_v4 with a warning. eleven_v4 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are a convention of the other speech models and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      -            "enum": [
      -              "eleven_v3",
      -              "eleven_flash_v2_5",
      -              "eleven_turbo_v2_5",
      -              "eleven_v4",
      -              "gemini-3.8-flash-tts"
      -            ],
      -            "type": "string"
      -          },
      -          "visible_ai_label": {
      -            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      -            "type": "boolean"
      -          },
      -          "voice": {
      -            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "voice_id": {
      -            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      -            "pattern": "^[A-Za-z0-9]{16,32}$",
      -            "type": "string"
      -          },
      -          "voice_pace": {
      -            "description": "Narration speed; 1 is the voice's own. gemini-3.8-flash-tts gets a style hint instead; eleven_v4 has no speed, so pick a voice by list_voices words_per_second; both named in warnings[].",
      -            "maximum": 1.2,
      -            "minimum": 0.7,
      -            "type": "number"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "skill": {
      -        "const": "make_ugc",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "script",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "script": {
      -                "maxLength": 10000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "script"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brief": {
      -                "maxLength": 5000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "brief",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "brief"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "skill": {
      -        "const": "make_faceless",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actor_gender": {
      +            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      +            "enum": [
      +              "female",
      +              "male"
      +            ],
      +            "type": "string"
      +          },
      +          "actor_id": {
      +            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      +            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "aspect_ratio": {
      +            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16 without an image; with an image, the supported format nearest the image's shape, even a landscape one — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      +            "enum": [
      +              "9:16",
      +              "1:1",
      +              "16:9"
      +            ],
      +            "type": "string"
      +          },
      +          "background": {
      +            "enum": [
      +              "white",
      +              "blur",
      +              "contain"
      +            ],
      +            "type": "string"
      +          },
      +          "broll_policy": {
      +            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      +            "enum": [
      +              "anyone",
      +              "no_actor",
      +              "no_people"
      +            ],
      +            "type": "string"
      +          },
      +          "call": {
      +            "additionalProperties": false,
      +            "description": "A phone call after a quote: the presenter listens, then freezes while the call plays as a phone line, with a ring first, and an in-call phone beside them shows it (a phone_call template covering the call is used instead). Needs script, a 9:16 frame and words after it. The frozen presenter and the call add production seconds, not presenter seconds, and a live-avatar still shown on the call has its own price in list_prices. Long-form qualification on the server.",
      +            "properties": {
      +              "after": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "endWord": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "startWord": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      }
      +                    },
      +                    "required": [
      +                      "startWord",
      +                      "endWord"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "occurrence": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "quote": {
      +                        "maxLength": 10000,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "quote"
      +                    ],
      +                    "type": "object"
      +                  }
      +                ],
      +                "description": "The words the call follows: the presenter stops after the quote's last word and resumes on the next one."
      +              },
      +              "lines": {
      +                "description": "The call's turns in order, from both speakers; at most 1500 characters and about 45 s in all.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "speaker": {
      +                      "enum": [
      +                        "agent",
      +                        "caller"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "text": {
      +                      "maxLength": 400,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "speaker",
      +                    "text"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 12,
      +                "minItems": 2,
      +                "type": "array"
      +              },
      +              "phone": {
      +                "additionalProperties": false,
      +                "description": "The in-call phone drawn over the call when no phone_call template covers it; omitted fields are +1 (305) 555-0147 with its digits after the area code masked, \"Hold This Call?\" and \"You'll be notified to pick up.\".",
      +                "properties": {
      +                  "banner": {
      +                    "maxLength": 32,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "banner_note": {
      +                    "maxLength": 48,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "caller": {
      +                    "maxLength": 24,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "mask_number": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "stage": {
      +                "additionalProperties": false,
      +                "description": "Where the in-call phone settles and how it rises, as a reference measured them (plan_reference_remake writes it); omitted is the reference call scene's own place and rise.",
      +                "properties": {
      +                  "enter": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "anchor": {
      +                        "additionalProperties": false,
      +                        "description": "When the rise starts: seconds from the call's freeze, negative before it.",
      +                        "properties": {
      +                          "id": {
      +                            "const": "freeze_start#1",
      +                            "type": "string"
      +                          },
      +                          "offset_s": {
      +                            "maximum": 0,
      +                            "minimum": -10,
      +                            "type": "number"
      +                          }
      +                        },
      +                        "required": [
      +                          "id",
      +                          "offset_s"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "displacement": {
      +                        "additionalItems": false,
      +                        "description": "Settled minus first position, in shares of width and height.",
      +                        "items": [
      +                          {
      +                            "maximum": 1,
      +                            "minimum": -1,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "maximum": 1,
      +                            "minimum": -1,
      +                            "type": "number"
      +                          }
      +                        ],
      +                        "maxItems": 2,
      +                        "minItems": 2,
      +                        "type": "array"
      +                      },
      +                      "duration_s": {
      +                        "maximum": 5,
      +                        "minimum": 0.1,
      +                        "type": "number"
      +                      },
      +                      "from": {
      +                        "enum": [
      +                          "bottom",
      +                          "lower_left",
      +                          "lower_right"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "from",
      +                      "displacement",
      +                      "duration_s",
      +                      "anchor"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "layer": {
      +                    "enum": [
      +                      "behind_presenter"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "rect": {
      +                    "additionalProperties": false,
      +                    "description": "Where the phone settles, in shares of the frame.",
      +                    "properties": {
      +                      "height": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "left": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "top": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "width": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "left",
      +                      "top",
      +                      "width",
      +                      "height"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "rect_face": {
      +                    "additionalProperties": false,
      +                    "description": "The same place relative to the presenter's face: origin the face centre, unit the face height.",
      +                    "properties": {
      +                      "height": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 20,
      +                        "type": "number"
      +                      },
      +                      "left": {
      +                        "maximum": 20,
      +                        "minimum": -20,
      +                        "type": "number"
      +                      },
      +                      "top": {
      +                        "maximum": 20,
      +                        "minimum": -20,
      +                        "type": "number"
      +                      },
      +                      "width": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 20,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "left",
      +                      "top",
      +                      "width",
      +                      "height"
      +                    ],
      +                    "type": "object"
      +                  }
      +                },
      +                "required": [
      +                  "rect"
      +                ],
      +                "type": "object"
      +              },
      +              "voices": {
      +                "additionalProperties": false,
      +                "description": "Voice names from list_voices; omitted means en_female_cassidy for the agent and en_male_mark for the caller.",
      +                "properties": {
      +                  "agent": {
      +                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                    "type": "string"
      +                  },
      +                  "caller": {
      +                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "after",
      +              "lines"
      +            ],
      +            "type": "object"
      +          },
      +          "caption_emphasis": {
      +            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi and accent draw color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      +            "items": {
      +              "anyOf": [
      +                {
      +                  "maxLength": 40,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "look": {
      +                      "enum": [
      +                        "punch",
      +                        "pill",
      +                        "color"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "punch_in": {
      +                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      +                      "type": "boolean"
      +                    },
      +                    "quote": {
      +                      "maxLength": 40,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "quote"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "caption_mode": {
      +            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      +            "enum": [
      +              "full",
      +              "highlights"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_position": {
      +            "description": "Where captions sit: top, middle, lower or bottom (80% of the height). Omitted means the caption_style's own place. Requires captions=true.",
      +            "enum": [
      +              "top",
      +              "middle",
      +              "lower",
      +              "bottom"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_style": {
      +            "default": "hormozi",
      +            "description": "Caption look when captions=true. hormozi: the default: heavy white uppercase with a thick black outline, up to three words per cue, one keyword per cue in yellow (emphasised, else the longest non-stop-word). accent: condensed bold white uppercase, no outline, up to three words per cue, one keyword per cue in orange (emphasised, else the longest non-stop-word). tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif. Previews: https://clipwright.io/captions",
      +            "enum": [
      +              "hormozi",
      +              "accent",
      +              "tiktok",
      +              "youtube",
      +              "instagram",
      +              "minimalist",
      +              "neon",
      +              "genz",
      +              "campfire",
      +              "midnight",
      +              "plottwist",
      +              "headline",
      +              "promo",
      +              "lecture",
      +              "highlighter",
      +              "studio",
      +              "broadcast",
      +              "arcade",
      +              "clutch",
      +              "bubblegum",
      +              "crayon",
      +              "lyrics",
      +              "bassdrop",
      +              "punch",
      +              "minimal"
      +            ],
      +            "type": "string"
      +          },
      +          "captions": {
      +            "default": false,
      +            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      +            "type": "boolean"
      +          },
      +          "edit_sounds": {
      +            "description": "A low sound on every cut (insert, full-frame template, layout window, framing), its peak on the cut. Needs inserts, layout_windows or framing; template_sounds.edit picks it (list_template_sounds). Price unchanged.",
      +            "type": "boolean"
      +          },
      +          "framing": {
      +            "description": "Text-anchored presenter sizes: each cuts to close or medium on its words and back to the take where they end. Items may not overlap one another, an insert or a layout window. A framing drawn wholly under full-frame templates is named in warnings[]. Where a punch_in emphasis meets a framing, the framing is drawn. Requires script and long-form qualification on the server; the price does not change.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words the size holds, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays, layout_windows, templates and framing.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "size": {
      +                  "default": "close",
      +                  "description": "close: the presenter 1.18 times larger about the face; medium: the take as rendered.",
      +                  "enum": [
      +                    "close",
      +                    "medium"
      +                  ],
      +                  "type": "string"
      +                },
      +                "transition": {
      +                  "default": "cut",
      +                  "description": "cut: a hard cut to the size; flash: a warm light leak over the cut.",
      +                  "enum": [
      +                    "cut",
      +                    "flash"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "image": {
      +            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      +            "format": "starts_with",
      +            "maxLength": 2048,
      +            "pattern": "^https:\\/\\/.*",
      +            "type": "string"
      +          },
      +          "inserts": {
      +            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "transition": {
      +                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      +                  "enum": [
      +                    "cut",
      +                    "wipe",
      +                    "flash",
      +                    "zoom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 49,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "layout_windows": {
      +            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "blur_presenter": {
      +                  "description": "Card only: blur the presenter behind the card.",
      +                  "type": "boolean"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "layout": {
      +                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      +                  "enum": [
      +                    "split",
      +                    "card"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "layout"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "look": {
      +            "default": "natural",
      +            "enum": [
      +              "natural",
      +              "commercial",
      +              "raw_iphone"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 100,
      +            "type": "string"
      +          },
      +          "overlays": {
      +            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "position": {
      +                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      +                  "enum": [
      +                    "top_left",
      +                    "top_right",
      +                    "bottom_left",
      +                    "bottom_right",
      +                    "top",
      +                    "bottom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "position"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 10,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "pause_trim": {
      +            "additionalProperties": false,
      +            "description": "Shorten narration pauses longer than these seconds, cutting silence only.",
      +            "properties": {
      +              "comma_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              },
      +              "mid_phrase_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              },
      +              "sentence_end_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "person": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "presenter_framing": {
      +            "description": "close (default) or wide: presenter lower, room above. Needs the actor's wide view (list_actors), 9:16 only; else close plus warnings[].",
      +            "enum": [
      +              "close",
      +              "wide"
      +            ],
      +            "type": "string"
      +          },
      +          "presenter_mic": {
      +            "description": "true: presenter holds a tiny mic. Needs the actor's mic view in that framing (list_actors; library ones are wide); else no mic plus warnings[].",
      +            "type": "boolean"
      +          },
      +          "resolution": {
      +            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      +            "enum": [
      +              "720p",
      +              "1080p",
      +              "4k"
      +            ],
      +            "type": "string"
      +          },
      +          "script": {
      +            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "segments": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "duration_seconds": {
      +                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      +                  "exclusiveMinimum": 0,
      +                  "type": "number"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "actor",
      +                    "media"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "format": "uri",
      +                  "maxLength": 2048,
      +                  "type": "string"
      +                },
      +                "script": {
      +                  "maxLength": 10000,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "kind"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "template_sounds": {
      +            "anyOf": [
      +              {
      +                "const": false,
      +                "type": "boolean"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "answer": {
      +                    "enum": [
      +                      "answer_confirm",
      +                      "answer_open",
      +                      "answer_pop",
      +                      "answer_select",
      +                      "pickup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "click": {
      +                    "enum": [
      +                      "click_mouse",
      +                      "click_soft",
      +                      "click_crisp",
      +                      "click_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "edit": {
      +                    "enum": [
      +                      "swell_hit",
      +                      "whoosh_deep",
      +                      "whoosh_low",
      +                      "boom_low",
      +                      "sub_drop",
      +                      "riser_boom",
      +                      "riser_hit"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "flash": {
      +                    "enum": [
      +                      "shutter",
      +                      "glitch",
      +                      "swish"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "hangup": {
      +                    "enum": [
      +                      "phone"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "money": {
      +                    "enum": [
      +                      "cash_register",
      +                      "coins"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "notify": {
      +                    "enum": [
      +                      "chime",
      +                      "glass_ping",
      +                      "glass_soft",
      +                      "bong",
      +                      "question_ping"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "pop": {
      +                    "enum": [
      +                      "plop"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "ring": {
      +                    "enum": [
      +                      "ring_classic",
      +                      "ring_marimba",
      +                      "ring_digital",
      +                      "ring_double"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "step": {
      +                    "enum": [
      +                      "drop",
      +                      "drop_high",
      +                      "tick",
      +                      "pluck",
      +                      "pluck_bright"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "toggle": {
      +                    "enum": [
      +                      "switch_flip",
      +                      "toggle_snap",
      +                      "switch_heavy",
      +                      "switch_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "whoosh": {
      +                    "enum": [
      +                      "whoosh",
      +                      "whip",
      +                      "paper_swipe",
      +                      "sweep",
      +                      "slide_quick"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            ],
      +            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      +          },
      +          "template_theme": {
      +            "additionalProperties": false,
      +            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      +            "properties": {
      +              "accent": {
      +                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      +                "pattern": "^#[0-9A-Fa-f]{6}$",
      +                "type": "string"
      +              },
      +              "preset": {
      +                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      +                "enum": [
      +                  "clean_light",
      +                  "bold_dark",
      +                  "neon",
      +                  "paper",
      +                  "mono"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "templates": {
      +            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: every run is billed by its parts as list_prices states them, and a presenter a template covers is still presenter time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs (or a hold banner shows); beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large, banner? ≤ 32, banner_note? ≤ 48, mask_number? true|false. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "position": {
      +                          "enum": [
      +                            "top",
      +                            "center",
      +                            "bottom"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "tag",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "name": {
      +                          "maxLength": 28,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "role": {
      +                          "maxLength": 36,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "name",
      +                        "side"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "lower_third",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "cta": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "site": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "site"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "end_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "chip": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "logo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "title"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "title_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "author": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "photo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 120,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "quote",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "prefix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "suffix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "value": {
      +                          "maximum": 999999999,
      +                          "minimum": 0,
      +                          "multipleOf": 0.01,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "value"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "stat",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "arrow",
      +                            "ring"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "target": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "x": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            },
      +                            "y": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            }
      +                          },
      +                          "required": [
      +                            "x",
      +                            "y"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "text": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "target",
      +                        "style"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "callout",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "clicks": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "item": {
      +                                "maximum": 3,
      +                                "minimum": 0,
      +                                "type": "integer"
      +                              },
      +                              "quote": {
      +                                "maxLength": 200,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "item"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 6,
      +                          "type": "array"
      +                        },
      +                        "items": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "icon": {
      +                                "enum": [
      +                                  "phone",
      +                                  "briefcase",
      +                                  "user",
      +                                  "clock",
      +                                  "chat",
      +                                  "star"
      +                                ],
      +                                "type": "string"
      +                              },
      +                              "label": {
      +                                "maxLength": 24,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "on": {
      +                                "type": "boolean"
      +                              }
      +                            },
      +                            "required": [
      +                              "label",
      +                              "on"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 4,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "switch",
      +                            "check"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "items"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "checklist",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "answer_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "avatar": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "banner": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "banner_note": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "caller": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "mask_number": {
      +                          "type": "boolean"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "subtitle": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "caller",
      +                        "answer_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "phone_call",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "after": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "before": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "labels": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "after": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "before": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "type": "object"
      +                        },
      +                        "reveal_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "before",
      +                        "after",
      +                        "reveal_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "compare",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "app": {
      +                          "maxLength": 20,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "body": {
      +                          "maxLength": 80,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "icon": {
      +                          "enum": [
      +                            "phone",
      +                            "briefcase",
      +                            "user",
      +                            "clock",
      +                            "chat",
      +                            "star"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "app",
      +                        "title",
      +                        "body"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "notification",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "advance_at": {
      +                          "items": {
      +                            "maxLength": 200,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "steps": {
      +                          "items": {
      +                            "maxLength": 20,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        }
      +                      },
      +                      "required": [
      +                        "steps"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "progress",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "stars": {
      +                          "maximum": 5,
      +                          "minimum": 1,
      +                          "multipleOf": 0.5,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "stars"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "rating",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 12,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "tts_model": {
      +            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): gemini-3.8-flash-tts for its own voices, eleven_v4 for every preset, catalog voice and raw voice_id. An explicit tts_model wins, except eleven_v3: it is no longer spoken, and a run naming it speaks eleven_v4 with a warning. eleven_v4 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are a convention of the other speech models and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      +            "enum": [
      +              "eleven_v3",
      +              "eleven_flash_v2_5",
      +              "eleven_turbo_v2_5",
      +              "eleven_v4",
      +              "gemini-3.8-flash-tts"
      +            ],
      +            "type": "string"
      +          },
      +          "visible_ai_label": {
      +            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      +            "type": "boolean"
      +          },
      +          "voice": {
      +            "description": "Voice name from list_voices. Curated presets: sarah | george | eric | daria_ru_female. The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "voice_id": {
      +            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      +            "pattern": "^[A-Za-z0-9]{16,32}$",
      +            "type": "string"
      +          },
      +          "voice_pace": {
      +            "description": "Narration speed; 1 is the voice's own. gemini-3.8-flash-tts gets a style hint instead; eleven_v4 has no speed, so pick a voice by list_voices words_per_second; both named in warnings[].",
      +            "maximum": 1.2,
      +            "minimum": 0.7,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_ugc",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "script",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "script": {
      +                "maxLength": 10000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "script"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brief": {
      +                "maxLength": 5000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "brief",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "brief"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "skill": {
      +        "const": "make_faceless",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / document / properties / brief / properties / reference_profile / properties / beats / items / properties / graphics / items / properties / label_hint / description
      Added value: +"What the vision pass saw on it, in its words, such as \"Blue banner 'DEVELOP THE STORY'\"; empty when it gave none."
    • changedInput schema / properties / document / properties / brief / properties / reference_profile / properties / beats / items / properties / graphics / items / properties / source_kind / enum
      Previous value: -[
      -  "toggle_checklist",
      -  "phone_call",
      -  "notification",
      -  "before_after_split",
      -  "split_screen",
      -  "stat",
      -  "product_ui",
      -  "screenshot",
      -  "title_card",
      -  "end_card",
      -  "particles",
      -  "tag",
      -  "lower_third",
      -  "quote",
      -  "callout",
      -  "checklist",
      -  "compare",
      -  "progress",
      -  "rating",
      -  "overlay_media",
      -  "insert_media",
      -  "layout_split",
      -  "unmapped",
      -  "other"
      -]New value: +[
      +  "toggle_checklist",
      +  "phone_call",
      +  "notification",
      +  "before_after_split",
      +  "split_screen",
      +  "stat",
      +  "product_ui",
      +  "screenshot",
      +  "title_card",
      +  "end_card",
      +  "particles",
      +  "banner",
      +  "logo_card",
      +  "comment_box",
      +  "price_card",
      +  "concept_card",
      +  "tag",
      +  "lower_third",
      +  "quote",
      +  "callout",
      +  "checklist",
      +  "compare",
      +  "progress",
      +  "rating",
      +  "overlay_media",
      +  "insert_media",
      +  "layout_split",
      +  "unmapped",
      +  "other"
      +]
    • addedInput schema / properties / document / properties / brief / properties / reference_profile / properties / beats / items / properties / spoken_summary / description
      Added value: +"The words spoken in the beat, cut at 200 characters; empty when none were heard."
    • addedInput schema / properties / document / properties / brief / properties / reference_profile / properties / hook
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "caption": {
      +      "description": "The first on-screen caption line the vision pass read inside the hook's window.",
      +      "maxLength": 120,
      +      "type": "string"
      +    },
      +    "end_s": {
      +      "description": "Where the hook's last word ends, else where its window does.",
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "text": {
      +      "description": "The words that start in the first 3 s, through the end of their sentence (no word starting past 6 s); empty when none do.",
      +      "maxLength": 200,
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text",
      +    "end_s"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / document / properties / brief / properties / reference_profile / properties / staging / properties / elements / items / properties / kind / enum
      Previous value: -[
      -  "toggle_checklist",
      -  "phone_call",
      -  "notification",
      -  "before_after_split",
      -  "split_screen",
      -  "stat",
      -  "product_ui",
      -  "screenshot",
      -  "title_card",
      -  "end_card",
      -  "particles",
      -  "tag",
      -  "lower_third",
      -  "quote",
      -  "callout",
      -  "checklist",
      -  "compare",
      -  "progress",
      -  "rating",
      -  "overlay_media",
      -  "insert_media",
      -  "layout_split",
      -  "unmapped",
      -  "other"
      -]New value: +[
      +  "toggle_checklist",
      +  "phone_call",
      +  "notification",
      +  "before_after_split",
      +  "split_screen",
      +  "stat",
      +  "product_ui",
      +  "screenshot",
      +  "title_card",
      +  "end_card",
      +  "particles",
      +  "banner",
      +  "logo_card",
      +  "comment_box",
      +  "price_card",
      +  "concept_card",
      +  "tag",
      +  "lower_third",
      +  "quote",
      +  "callout",
      +  "checklist",
      +  "compare",
      +  "progress",
      +  "rating",
      +  "overlay_media",
      +  "insert_media",
      +  "layout_split",
      +  "unmapped",
      +  "other"
      +]
    • addedInput schema / properties / document / properties / brief / properties / reference_profile / properties / transcript
      Added value: +{
      +  "description": "The reference's speech as timed words, in order.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "end_s": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "speaker": {
      +        "description": "The transcription's speaker label, such as speaker_0; absent when it gave none.",
      +        "maxLength": 40,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "start_s": {
      +        "minimum": 0,
      +        "type": "number"
      +      },
      +      "text": {
      +        "maxLength": 64,
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "text",
      +      "start_s",
      +      "end_s"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 1000,
      +  "type": "array"
      +}
  4. Changed3 schema fields changedv0.35.0
    • changedInput schema / properties / document / properties / brief / properties / native / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actor_gender": {
      -            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      -            "enum": [
      -              "female",
      -              "male"
      -            ],
      -            "type": "string"
      -          },
      -          "actor_id": {
      -            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      -            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "aspect_ratio": {
      -            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      -            "enum": [
      -              "9:16",
      -              "1:1",
      -              "16:9"
      -            ],
      -            "type": "string"
      -          },
      -          "background": {
      -            "enum": [
      -              "white",
      -              "blur",
      -              "contain"
      -            ],
      -            "type": "string"
      -          },
      -          "broll_policy": {
      -            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      -            "enum": [
      -              "anyone",
      -              "no_actor",
      -              "no_people"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_emphasis": {
      -            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi draws color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      -            "items": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 40,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "look": {
      -                      "enum": [
      -                        "punch",
      -                        "pill",
      -                        "color"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "punch_in": {
      -                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      -                      "type": "boolean"
      -                    },
      -                    "quote": {
      -                      "maxLength": 40,
      -                      "minLength": 1,
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "quote"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 20,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "caption_mode": {
      -            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      -            "enum": [
      -              "full",
      -              "highlights"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_style": {
      -            "default": "hormozi",
      -            "description": "Caption look when captions=true. hormozi: the default: condensed bold uppercase, two to four white words per cue mid-lower in the frame, one keyword per cue in orange (the emphasised words, or else the cue's longest word that is not a stop-word); Latin and Cyrillic in one font. tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif.",
      -            "enum": [
      -              "hormozi",
      -              "tiktok",
      -              "youtube",
      -              "instagram",
      -              "minimalist",
      -              "neon",
      -              "genz",
      -              "campfire",
      -              "midnight",
      -              "plottwist",
      -              "headline",
      -              "promo",
      -              "lecture",
      -              "highlighter",
      -              "studio",
      -              "broadcast",
      -              "arcade",
      -              "clutch",
      -              "bubblegum",
      -              "crayon",
      -              "lyrics",
      -              "bassdrop",
      -              "punch",
      -              "minimal"
      -            ],
      -            "type": "string"
      -          },
      -          "captions": {
      -            "default": false,
      -            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      -            "type": "boolean"
      -          },
      -          "image": {
      -            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      -            "format": "starts_with",
      -            "maxLength": 2048,
      -            "pattern": "^https:\\/\\/.*",
      -            "type": "string"
      -          },
      -          "inserts": {
      -            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "transition": {
      -                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      -                  "enum": [
      -                    "cut",
      -                    "wipe",
      -                    "flash",
      -                    "zoom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 49,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "layout_windows": {
      -            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "blur_presenter": {
      -                  "description": "Card only: blur the presenter behind the card.",
      -                  "type": "boolean"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "layout": {
      -                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      -                  "enum": [
      -                    "split",
      -                    "card"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "layout"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "look": {
      -            "default": "natural",
      -            "enum": [
      -              "natural",
      -              "commercial",
      -              "raw_iphone"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "overlays": {
      -            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ],
      -                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                },
      -                "asset_id": {
      -                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      -                  "pattern": "^ast_[a-f0-9]{32}$",
      -                  "type": "string"
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "enter": {
      -                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      -                  "enum": [
      -                    "cut",
      -                    "fade",
      -                    "slide",
      -                    "tilt_in"
      -                  ],
      -                  "type": "string"
      -                },
      -                "id": {
      -                  "description": "Unique across inserts, overlays and layout_windows.",
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                },
      -                "position": {
      -                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      -                  "enum": [
      -                    "top_left",
      -                    "top_right",
      -                    "bottom_left",
      -                    "bottom_right",
      -                    "top",
      -                    "bottom"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_type",
      -                "anchor",
      -                "position"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 10,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "person": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "resolution": {
      -            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      -            "enum": [
      -              "720p",
      -              "1080p",
      -              "4k"
      -            ],
      -            "type": "string"
      -          },
      -          "script": {
      -            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v3, eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "segments": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "duration_seconds": {
      -                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "actor",
      -                    "media"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "uri",
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "script": {
      -                  "maxLength": 10000,
      -                  "minLength": 1,
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "kind"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "template_sounds": {
      -            "anyOf": [
      -              {
      -                "const": false,
      -                "type": "boolean"
      -              },
      -              {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "answer": {
      -                    "enum": [
      -                      "answer_confirm",
      -                      "answer_open",
      -                      "answer_pop",
      -                      "answer_select"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "click": {
      -                    "enum": [
      -                      "click_mouse",
      -                      "click_soft",
      -                      "click_crisp",
      -                      "click_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "flash": {
      -                    "enum": [
      -                      "shutter",
      -                      "glitch"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "notify": {
      -                    "enum": [
      -                      "chime",
      -                      "glass_ping",
      -                      "glass_soft",
      -                      "bong",
      -                      "question_ping"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "ring": {
      -                    "enum": [
      -                      "ring_classic",
      -                      "ring_marimba",
      -                      "ring_digital"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "step": {
      -                    "enum": [
      -                      "drop",
      -                      "drop_high",
      -                      "tick",
      -                      "pluck",
      -                      "pluck_bright"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "toggle": {
      -                    "enum": [
      -                      "switch_flip",
      -                      "toggle_snap",
      -                      "switch_heavy",
      -                      "switch_light"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "whoosh": {
      -                    "enum": [
      -                      "whoosh",
      -                      "whip",
      -                      "paper_swipe",
      -                      "sweep"
      -                    ],
      -                    "type": "string"
      -                  }
      -                },
      -                "type": "object"
      -              }
      -            ],
      -            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      -          },
      -          "template_theme": {
      -            "additionalProperties": false,
      -            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      -            "properties": {
      -              "accent": {
      -                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      -                "pattern": "^#[0-9A-Fa-f]{6}$",
      -                "type": "string"
      -              },
      -              "preset": {
      -                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      -                "enum": [
      -                  "clean_light",
      -                  "bold_dark",
      -                  "neon",
      -                  "paper",
      -                  "mono"
      -                ],
      -                "type": "string"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          "templates": {
      -            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: a plain run is billed per second of finished video (30/s); a run with inserts, overlays or layout_windows is billed long-form-v1, and a covered presenter there is still face time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs; beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      -            "items": {
      -              "oneOf": [
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "position": {
      -                          "enum": [
      -                            "top",
      -                            "center",
      -                            "bottom"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "tag",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "name": {
      -                          "maxLength": 28,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "role": {
      -                          "maxLength": 36,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "name",
      -                        "side"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "lower_third",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "cta": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "site": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "site"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "end_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "chip": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "logo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 48,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "title"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "title_card",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "author": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "photo": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "text": {
      -                          "maxLength": 120,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "text"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "quote",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "prefix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "suffix": {
      -                          "maxLength": 6,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "value": {
      -                          "maximum": 999999999,
      -                          "minimum": 0,
      -                          "multipleOf": 0.01,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "value"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "stat",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "arrow",
      -                            "ring"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "target": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "x": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            },
      -                            "y": {
      -                              "maximum": 100,
      -                              "minimum": 0,
      -                              "type": "number"
      -                            }
      -                          },
      -                          "required": [
      -                            "x",
      -                            "y"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "text": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "target",
      -                        "style"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "callout",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "clicks": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "item": {
      -                                "maximum": 3,
      -                                "minimum": 0,
      -                                "type": "integer"
      -                              },
      -                              "quote": {
      -                                "maxLength": 200,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              }
      -                            },
      -                            "required": [
      -                              "item"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 6,
      -                          "type": "array"
      -                        },
      -                        "items": {
      -                          "items": {
      -                            "additionalProperties": false,
      -                            "properties": {
      -                              "icon": {
      -                                "enum": [
      -                                  "phone",
      -                                  "briefcase",
      -                                  "user",
      -                                  "clock",
      -                                  "chat",
      -                                  "star"
      -                                ],
      -                                "type": "string"
      -                              },
      -                              "label": {
      -                                "maxLength": 24,
      -                                "minLength": 1,
      -                                "type": "string"
      -                              },
      -                              "on": {
      -                                "type": "boolean"
      -                              }
      -                            },
      -                            "required": [
      -                              "label",
      -                              "on"
      -                            ],
      -                            "type": "object"
      -                          },
      -                          "maxItems": 4,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "style": {
      -                          "enum": [
      -                            "switch",
      -                            "check"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "items"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "checklist",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "answer_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "avatar": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "caller": {
      -                          "maxLength": 24,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "side": {
      -                          "enum": [
      -                            "left",
      -                            "right"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "subtitle": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "caller",
      -                        "answer_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "phone_call",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "after": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "before": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "asset_id": {
      -                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      -                              "pattern": "^ast_[a-f0-9]{32}$",
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "asset_id"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        "labels": {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "after": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            },
      -                            "before": {
      -                              "maxLength": 20,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "type": "object"
      -                        },
      -                        "reveal_at": {
      -                          "maxLength": 200,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "before",
      -                        "after",
      -                        "reveal_at"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "compare",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "app": {
      -                          "maxLength": 20,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "body": {
      -                          "maxLength": 80,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "icon": {
      -                          "enum": [
      -                            "phone",
      -                            "briefcase",
      -                            "user",
      -                            "clock",
      -                            "chat",
      -                            "star"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "title": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "app",
      -                        "title",
      -                        "body"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "notification",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "advance_at": {
      -                          "items": {
      -                            "maxLength": 200,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "steps": {
      -                          "items": {
      -                            "maxLength": 20,
      -                            "minLength": 1,
      -                            "type": "string"
      -                          },
      -                          "maxItems": 5,
      -                          "minItems": 2,
      -                          "type": "array"
      -                        }
      -                      },
      -                      "required": [
      -                        "steps"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "progress",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 10000,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ],
      -                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      -                    },
      -                    "cover_words": {
      -                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      -                      "exclusiveMinimum": 0,
      -                      "maximum": 10000,
      -                      "type": "integer"
      -                    },
      -                    "data": {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "label": {
      -                          "maxLength": 32,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        },
      -                        "size": {
      -                          "enum": [
      -                            "small",
      -                            "medium",
      -                            "large"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "stars": {
      -                          "maximum": 5,
      -                          "minimum": 1,
      -                          "multipleOf": 0.5,
      -                          "type": "number"
      -                        }
      -                      },
      -                      "required": [
      -                        "stars"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "id": {
      -                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      -                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                      "type": "string"
      -                    },
      -                    "kind": {
      -                      "const": "rating",
      -                      "type": "string"
      -                    },
      -                    "placement": {
      -                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      -                      "enum": [
      -                        "over",
      -                        "full"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    "transition": {
      -                      "description": "Full placement only, as an insert's transition.",
      -                      "enum": [
      -                        "cut",
      -                        "wipe",
      -                        "flash",
      -                        "zoom"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "id",
      -                    "anchor",
      -                    "kind",
      -                    "data"
      -                  ],
      -                  "type": "object"
      -                }
      -              ]
      -            },
      -            "maxItems": 12,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "tts_model": {
      -            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): eleven_v4 for the Russian presets and for catalog voices named ru_*, gemini-3.8-flash-tts for its own voices, eleven_v3 for every other preset and catalog voice. A raw voice_id speaks eleven_v4 when the script is mostly Cyrillic and eleven_v3 otherwise. An explicit tts_model always wins. eleven_v4, eleven_v3 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are an eleven_v3 and eleven_v4 convention and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      -            "enum": [
      -              "eleven_v3",
      -              "eleven_flash_v2_5",
      -              "eleven_turbo_v2_5",
      -              "eleven_v4",
      -              "gemini-3.8-flash-tts"
      -            ],
      -            "type": "string"
      -          },
      -          "visible_ai_label": {
      -            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      -            "type": "boolean"
      -          },
      -          "voice": {
      -            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "voice_id": {
      -            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      -            "pattern": "^[A-Za-z0-9]{16,32}$",
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "skill": {
      -        "const": "make_ugc",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "script",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "script": {
      -                "maxLength": 10000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "script"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brief": {
      -                "maxLength": 5000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "brief",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "brief"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "skill": {
      -        "const": "make_faceless",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actor_gender": {
      +            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      +            "enum": [
      +              "female",
      +              "male"
      +            ],
      +            "type": "string"
      +          },
      +          "actor_id": {
      +            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      +            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "aspect_ratio": {
      +            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      +            "enum": [
      +              "9:16",
      +              "1:1",
      +              "16:9"
      +            ],
      +            "type": "string"
      +          },
      +          "background": {
      +            "enum": [
      +              "white",
      +              "blur",
      +              "contain"
      +            ],
      +            "type": "string"
      +          },
      +          "broll_policy": {
      +            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      +            "enum": [
      +              "anyone",
      +              "no_actor",
      +              "no_people"
      +            ],
      +            "type": "string"
      +          },
      +          "call": {
      +            "additionalProperties": false,
      +            "description": "A phone call after a quote: the presenter listens, then freezes while the call plays as a phone line, with a ring first, and an in-call phone beside them shows it (a phone_call template covering the call is used instead). Needs script, a 9:16 frame and words after it. The frozen presenter and the call add production seconds, not presenter seconds, and a live-avatar still shown on the call has its own price in list_prices. Long-form qualification on the server.",
      +            "properties": {
      +              "after": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "endWord": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "startWord": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      }
      +                    },
      +                    "required": [
      +                      "startWord",
      +                      "endWord"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "occurrence": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "quote": {
      +                        "maxLength": 10000,
      +                        "minLength": 1,
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "quote"
      +                    ],
      +                    "type": "object"
      +                  }
      +                ],
      +                "description": "The words the call follows: the presenter stops after the quote's last word and resumes on the next one."
      +              },
      +              "lines": {
      +                "description": "The call's turns in order, from both speakers; at most 1500 characters and about 45 s in all.",
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "speaker": {
      +                      "enum": [
      +                        "agent",
      +                        "caller"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "text": {
      +                      "maxLength": 400,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "speaker",
      +                    "text"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 12,
      +                "minItems": 2,
      +                "type": "array"
      +              },
      +              "phone": {
      +                "additionalProperties": false,
      +                "description": "The in-call phone drawn over the call when no phone_call template covers it; omitted fields are +1 (305) 555-0147 with its digits after the area code masked, \"Hold This Call?\" and \"You'll be notified to pick up.\".",
      +                "properties": {
      +                  "banner": {
      +                    "maxLength": 32,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "banner_note": {
      +                    "maxLength": 48,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "caller": {
      +                    "maxLength": 24,
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "mask_number": {
      +                    "type": "boolean"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "stage": {
      +                "additionalProperties": false,
      +                "description": "Where the in-call phone settles and how it rises, as a reference measured them (plan_reference_remake writes it); omitted is the reference call scene's own place and rise.",
      +                "properties": {
      +                  "enter": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "anchor": {
      +                        "additionalProperties": false,
      +                        "description": "When the rise starts: seconds from the call's freeze, negative before it.",
      +                        "properties": {
      +                          "id": {
      +                            "const": "freeze_start#1",
      +                            "type": "string"
      +                          },
      +                          "offset_s": {
      +                            "maximum": 0,
      +                            "minimum": -10,
      +                            "type": "number"
      +                          }
      +                        },
      +                        "required": [
      +                          "id",
      +                          "offset_s"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "displacement": {
      +                        "additionalItems": false,
      +                        "description": "Settled minus first position, in shares of width and height.",
      +                        "items": [
      +                          {
      +                            "maximum": 1,
      +                            "minimum": -1,
      +                            "type": "number"
      +                          },
      +                          {
      +                            "maximum": 1,
      +                            "minimum": -1,
      +                            "type": "number"
      +                          }
      +                        ],
      +                        "maxItems": 2,
      +                        "minItems": 2,
      +                        "type": "array"
      +                      },
      +                      "duration_s": {
      +                        "maximum": 5,
      +                        "minimum": 0.1,
      +                        "type": "number"
      +                      },
      +                      "from": {
      +                        "enum": [
      +                          "bottom",
      +                          "lower_left",
      +                          "lower_right"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "from",
      +                      "displacement",
      +                      "duration_s",
      +                      "anchor"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "layer": {
      +                    "enum": [
      +                      "behind_presenter"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "rect": {
      +                    "additionalProperties": false,
      +                    "description": "Where the phone settles, in shares of the frame.",
      +                    "properties": {
      +                      "height": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "left": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "top": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "width": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "left",
      +                      "top",
      +                      "width",
      +                      "height"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "rect_face": {
      +                    "additionalProperties": false,
      +                    "description": "The same place relative to the presenter's face: origin the face centre, unit the face height.",
      +                    "properties": {
      +                      "height": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 20,
      +                        "type": "number"
      +                      },
      +                      "left": {
      +                        "maximum": 20,
      +                        "minimum": -20,
      +                        "type": "number"
      +                      },
      +                      "top": {
      +                        "maximum": 20,
      +                        "minimum": -20,
      +                        "type": "number"
      +                      },
      +                      "width": {
      +                        "exclusiveMinimum": 0,
      +                        "maximum": 20,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "left",
      +                      "top",
      +                      "width",
      +                      "height"
      +                    ],
      +                    "type": "object"
      +                  }
      +                },
      +                "required": [
      +                  "rect"
      +                ],
      +                "type": "object"
      +              },
      +              "voices": {
      +                "additionalProperties": false,
      +                "description": "Voice names from list_voices; omitted means en_female_cassidy for the agent and en_male_mark for the caller.",
      +                "properties": {
      +                  "agent": {
      +                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                    "type": "string"
      +                  },
      +                  "caller": {
      +                    "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            },
      +            "required": [
      +              "after",
      +              "lines"
      +            ],
      +            "type": "object"
      +          },
      +          "caption_emphasis": {
      +            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi and accent draw color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      +            "items": {
      +              "anyOf": [
      +                {
      +                  "maxLength": 40,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "look": {
      +                      "enum": [
      +                        "punch",
      +                        "pill",
      +                        "color"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "punch_in": {
      +                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      +                      "type": "boolean"
      +                    },
      +                    "quote": {
      +                      "maxLength": 40,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "quote"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "caption_mode": {
      +            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      +            "enum": [
      +              "full",
      +              "highlights"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_position": {
      +            "description": "Where captions sit: top, middle, lower or bottom (80% of the height). Omitted means the caption_style's own place. Requires captions=true.",
      +            "enum": [
      +              "top",
      +              "middle",
      +              "lower",
      +              "bottom"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_style": {
      +            "default": "hormozi",
      +            "description": "Caption look when captions=true. hormozi: the default: heavy white uppercase with a thick black outline, up to three words per cue, one keyword per cue in yellow (emphasised, else the longest non-stop-word). accent: condensed bold white uppercase, no outline, up to three words per cue, one keyword per cue in orange (emphasised, else the longest non-stop-word). tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif. Previews: https://clipwright.io/captions",
      +            "enum": [
      +              "hormozi",
      +              "accent",
      +              "tiktok",
      +              "youtube",
      +              "instagram",
      +              "minimalist",
      +              "neon",
      +              "genz",
      +              "campfire",
      +              "midnight",
      +              "plottwist",
      +              "headline",
      +              "promo",
      +              "lecture",
      +              "highlighter",
      +              "studio",
      +              "broadcast",
      +              "arcade",
      +              "clutch",
      +              "bubblegum",
      +              "crayon",
      +              "lyrics",
      +              "bassdrop",
      +              "punch",
      +              "minimal"
      +            ],
      +            "type": "string"
      +          },
      +          "captions": {
      +            "default": false,
      +            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      +            "type": "boolean"
      +          },
      +          "edit_sounds": {
      +            "description": "A low sound on every cut (insert, full-frame template, layout window, framing), its peak on the cut. Needs inserts, layout_windows or framing; template_sounds.edit picks it (list_template_sounds). Price unchanged.",
      +            "type": "boolean"
      +          },
      +          "framing": {
      +            "description": "Text-anchored presenter sizes: each cuts to close or medium on its words and back to the take where they end. Items may not overlap one another, an insert or a layout window. A framing drawn wholly under full-frame templates is named in warnings[]. Where a punch_in emphasis meets a framing, the framing is drawn. Requires script and long-form qualification on the server; the price does not change.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words the size holds, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays, layout_windows, templates and framing.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "size": {
      +                  "default": "close",
      +                  "description": "close: the presenter 1.18 times larger about the face; medium: the take as rendered.",
      +                  "enum": [
      +                    "close",
      +                    "medium"
      +                  ],
      +                  "type": "string"
      +                },
      +                "transition": {
      +                  "default": "cut",
      +                  "description": "cut: a hard cut to the size; flash: a warm light leak over the cut.",
      +                  "enum": [
      +                    "cut",
      +                    "flash"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "image": {
      +            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      +            "format": "starts_with",
      +            "maxLength": 2048,
      +            "pattern": "^https:\\/\\/.*",
      +            "type": "string"
      +          },
      +          "inserts": {
      +            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "transition": {
      +                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      +                  "enum": [
      +                    "cut",
      +                    "wipe",
      +                    "flash",
      +                    "zoom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 49,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "layout_windows": {
      +            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "blur_presenter": {
      +                  "description": "Card only: blur the presenter behind the card.",
      +                  "type": "boolean"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "layout": {
      +                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      +                  "enum": [
      +                    "split",
      +                    "card"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "layout"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "look": {
      +            "default": "natural",
      +            "enum": [
      +              "natural",
      +              "commercial",
      +              "raw_iphone"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 100,
      +            "type": "string"
      +          },
      +          "overlays": {
      +            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "position": {
      +                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      +                  "enum": [
      +                    "top_left",
      +                    "top_right",
      +                    "bottom_left",
      +                    "bottom_right",
      +                    "top",
      +                    "bottom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "position"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 10,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "pause_trim": {
      +            "additionalProperties": false,
      +            "description": "Shorten narration pauses longer than these seconds, cutting silence only.",
      +            "properties": {
      +              "comma_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              },
      +              "mid_phrase_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              },
      +              "sentence_end_s": {
      +                "maximum": 2,
      +                "minimum": 0.05,
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "person": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "presenter_framing": {
      +            "description": "close (default) or wide: presenter lower, room above. Needs the actor's wide view (list_actors), 9:16 only; else close plus warnings[].",
      +            "enum": [
      +              "close",
      +              "wide"
      +            ],
      +            "type": "string"
      +          },
      +          "presenter_mic": {
      +            "description": "true: presenter holds a tiny mic. Needs the actor's mic view in that framing (list_actors; library ones are wide); else no mic plus warnings[].",
      +            "type": "boolean"
      +          },
      +          "resolution": {
      +            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      +            "enum": [
      +              "720p",
      +              "1080p",
      +              "4k"
      +            ],
      +            "type": "string"
      +          },
      +          "script": {
      +            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "segments": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "duration_seconds": {
      +                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      +                  "exclusiveMinimum": 0,
      +                  "type": "number"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "actor",
      +                    "media"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "format": "uri",
      +                  "maxLength": 2048,
      +                  "type": "string"
      +                },
      +                "script": {
      +                  "maxLength": 10000,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "kind"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "template_sounds": {
      +            "anyOf": [
      +              {
      +                "const": false,
      +                "type": "boolean"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "answer": {
      +                    "enum": [
      +                      "answer_confirm",
      +                      "answer_open",
      +                      "answer_pop",
      +                      "answer_select",
      +                      "pickup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "click": {
      +                    "enum": [
      +                      "click_mouse",
      +                      "click_soft",
      +                      "click_crisp",
      +                      "click_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "edit": {
      +                    "enum": [
      +                      "swell_hit",
      +                      "whoosh_deep",
      +                      "whoosh_low",
      +                      "boom_low",
      +                      "sub_drop",
      +                      "riser_boom",
      +                      "riser_hit"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "flash": {
      +                    "enum": [
      +                      "shutter",
      +                      "glitch",
      +                      "swish"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "hangup": {
      +                    "enum": [
      +                      "phone"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "money": {
      +                    "enum": [
      +                      "cash_register",
      +                      "coins"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "notify": {
      +                    "enum": [
      +                      "chime",
      +                      "glass_ping",
      +                      "glass_soft",
      +                      "bong",
      +                      "question_ping"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "pop": {
      +                    "enum": [
      +                      "plop"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "ring": {
      +                    "enum": [
      +                      "ring_classic",
      +                      "ring_marimba",
      +                      "ring_digital",
      +                      "ring_double"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "step": {
      +                    "enum": [
      +                      "drop",
      +                      "drop_high",
      +                      "tick",
      +                      "pluck",
      +                      "pluck_bright"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "toggle": {
      +                    "enum": [
      +                      "switch_flip",
      +                      "toggle_snap",
      +                      "switch_heavy",
      +                      "switch_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "whoosh": {
      +                    "enum": [
      +                      "whoosh",
      +                      "whip",
      +                      "paper_swipe",
      +                      "sweep",
      +                      "slide_quick"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            ],
      +            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      +          },
      +          "template_theme": {
      +            "additionalProperties": false,
      +            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      +            "properties": {
      +              "accent": {
      +                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      +                "pattern": "^#[0-9A-Fa-f]{6}$",
      +                "type": "string"
      +              },
      +              "preset": {
      +                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      +                "enum": [
      +                  "clean_light",
      +                  "bold_dark",
      +                  "neon",
      +                  "paper",
      +                  "mono"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "templates": {
      +            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: every run is billed by its parts as list_prices states them, and a presenter a template covers is still presenter time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs (or a hold banner shows); beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large, banner? ≤ 32, banner_note? ≤ 48, mask_number? true|false. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "position": {
      +                          "enum": [
      +                            "top",
      +                            "center",
      +                            "bottom"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "tag",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "name": {
      +                          "maxLength": 28,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "role": {
      +                          "maxLength": 36,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "name",
      +                        "side"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "lower_third",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "cta": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "site": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "site"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "end_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "chip": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "logo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "title"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "title_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "author": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "photo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 120,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "quote",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "prefix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "suffix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "value": {
      +                          "maximum": 999999999,
      +                          "minimum": 0,
      +                          "multipleOf": 0.01,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "value"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "stat",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "arrow",
      +                            "ring"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "target": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "x": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            },
      +                            "y": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            }
      +                          },
      +                          "required": [
      +                            "x",
      +                            "y"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "text": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "target",
      +                        "style"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "callout",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "clicks": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "item": {
      +                                "maximum": 3,
      +                                "minimum": 0,
      +                                "type": "integer"
      +                              },
      +                              "quote": {
      +                                "maxLength": 200,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "item"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 6,
      +                          "type": "array"
      +                        },
      +                        "items": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "icon": {
      +                                "enum": [
      +                                  "phone",
      +                                  "briefcase",
      +                                  "user",
      +                                  "clock",
      +                                  "chat",
      +                                  "star"
      +                                ],
      +                                "type": "string"
      +                              },
      +                              "label": {
      +                                "maxLength": 24,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "on": {
      +                                "type": "boolean"
      +                              }
      +                            },
      +                            "required": [
      +                              "label",
      +                              "on"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 4,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "switch",
      +                            "check"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "items"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "checklist",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "answer_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "avatar": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "banner": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "banner_note": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "caller": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "mask_number": {
      +                          "type": "boolean"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "subtitle": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "caller",
      +                        "answer_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "phone_call",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "after": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "before": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "labels": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "after": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "before": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "type": "object"
      +                        },
      +                        "reveal_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "before",
      +                        "after",
      +                        "reveal_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "compare",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "app": {
      +                          "maxLength": 20,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "body": {
      +                          "maxLength": 80,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "icon": {
      +                          "enum": [
      +                            "phone",
      +                            "briefcase",
      +                            "user",
      +                            "clock",
      +                            "chat",
      +                            "star"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "app",
      +                        "title",
      +                        "body"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "notification",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "advance_at": {
      +                          "items": {
      +                            "maxLength": 200,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "steps": {
      +                          "items": {
      +                            "maxLength": 20,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        }
      +                      },
      +                      "required": [
      +                        "steps"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "progress",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "stars": {
      +                          "maximum": 5,
      +                          "minimum": 1,
      +                          "multipleOf": 0.5,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "stars"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "rating",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 12,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "tts_model": {
      +            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): gemini-3.8-flash-tts for its own voices, eleven_v4 for every preset, catalog voice and raw voice_id. An explicit tts_model wins, except eleven_v3: it is no longer spoken, and a run naming it speaks eleven_v4 with a warning. eleven_v4 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are a convention of the other speech models and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      +            "enum": [
      +              "eleven_v3",
      +              "eleven_flash_v2_5",
      +              "eleven_turbo_v2_5",
      +              "eleven_v4",
      +              "gemini-3.8-flash-tts"
      +            ],
      +            "type": "string"
      +          },
      +          "visible_ai_label": {
      +            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      +            "type": "boolean"
      +          },
      +          "voice": {
      +            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "voice_id": {
      +            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      +            "pattern": "^[A-Za-z0-9]{16,32}$",
      +            "type": "string"
      +          },
      +          "voice_pace": {
      +            "description": "Narration speed; 1 is the voice's own. gemini-3.8-flash-tts gets a style hint instead; eleven_v4 has no speed, so pick a voice by list_voices words_per_second; both named in warnings[].",
      +            "maximum": 1.2,
      +            "minimum": 0.7,
      +            "type": "number"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_ugc",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "script",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "script": {
      +                "maxLength": 10000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "script"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brief": {
      +                "maxLength": 5000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "brief",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "brief"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "skill": {
      +        "const": "make_faceless",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  }
      +]
    • addedInput schema / properties / document / properties / brief / properties / reference_profile
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "analysis": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "cost_usd": {
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "latency_ms": {
      +          "maximum": 9007199254740991,
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        "models": {
      +          "items": {
      +            "maxLength": 60,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "warnings": {
      +          "description": "What the analysis could not measure, such as the voice pass; also in warnings[].",
      +          "items": {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          "maxItems": 8,
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "models",
      +        "latency_ms"
      +      ],
      +      "type": "object"
      +    },
      +    "beats": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "camera": {
      +            "enum": [
      +              "static",
      +              "punch_in",
      +              "zoom_out",
      +              "shake",
      +              "other"
      +            ],
      +            "type": "string"
      +          },
      +          "end_frac": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "end_s": {
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "graphics": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "kind": {
      +                  "enum": [
      +                    "tag",
      +                    "lower_third",
      +                    "end_card",
      +                    "title_card",
      +                    "quote",
      +                    "stat",
      +                    "callout",
      +                    "checklist",
      +                    "phone_call",
      +                    "compare",
      +                    "notification",
      +                    "progress",
      +                    "rating",
      +                    "overlay_media",
      +                    "insert_media",
      +                    "layout_split",
      +                    "particles",
      +                    "unmapped"
      +                  ],
      +                  "type": "string"
      +                },
      +                "label_hint": {
      +                  "maxLength": 120,
      +                  "type": "string"
      +                },
      +                "position": {
      +                  "enum": [
      +                    "full_screen",
      +                    "top",
      +                    "center",
      +                    "bottom",
      +                    "top_left",
      +                    "top_right",
      +                    "bottom_left",
      +                    "bottom_right",
      +                    "split_top",
      +                    "split_bottom",
      +                    "other"
      +                  ],
      +                  "type": "string"
      +                },
      +                "source_kind": {
      +                  "description": "The analyser's own word for it, or other.",
      +                  "enum": [
      +                    "toggle_checklist",
      +                    "phone_call",
      +                    "notification",
      +                    "before_after_split",
      +                    "split_screen",
      +                    "stat",
      +                    "product_ui",
      +                    "screenshot",
      +                    "title_card",
      +                    "end_card",
      +                    "particles",
      +                    "tag",
      +                    "lower_third",
      +                    "quote",
      +                    "callout",
      +                    "checklist",
      +                    "compare",
      +                    "progress",
      +                    "rating",
      +                    "overlay_media",
      +                    "insert_media",
      +                    "layout_split",
      +                    "unmapped",
      +                    "other"
      +                  ],
      +                  "type": "string"
      +                },
      +                "state_changes": {
      +                  "items": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "at_frac": {
      +                        "description": "Share of the beat.",
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "change": {
      +                        "enum": [
      +                          "appears",
      +                          "disappears",
      +                          "toggles_on",
      +                          "toggles_off",
      +                          "checked",
      +                          "value_changes",
      +                          "highlighted",
      +                          "other"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "at_frac",
      +                      "change"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "maxItems": 12,
      +                  "type": "array"
      +                }
      +              },
      +              "required": [
      +                "kind",
      +                "source_kind",
      +                "position",
      +                "state_changes",
      +                "label_hint"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 8,
      +            "type": "array"
      +          },
      +          "presenter_behaviour": {
      +            "enum": [
      +              "speaking",
      +              "listening",
      +              "reacting",
      +              "absent"
      +            ],
      +            "type": "string"
      +          },
      +          "role": {
      +            "enum": [
      +              "hook",
      +              "problem",
      +              "agitation",
      +              "solution",
      +              "demo",
      +              "proof",
      +              "before_after",
      +              "social_proof",
      +              "offer",
      +              "cta",
      +              "other"
      +            ],
      +            "type": "string"
      +          },
      +          "sounds": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "at_frac": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "click",
      +                    "toggle",
      +                    "ring",
      +                    "answer",
      +                    "notify",
      +                    "step",
      +                    "whoosh",
      +                    "flash",
      +                    "pop",
      +                    "hangup",
      +                    "money",
      +                    "edit",
      +                    "music",
      +                    "recorded_audio",
      +                    "other"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "at_frac",
      +                "kind"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 12,
      +            "type": "array"
      +          },
      +          "spoken_summary": {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          "start_frac": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "start_s": {
      +            "description": "Seconds of the reference, kept as evidence only.",
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "transition_in": {
      +            "enum": [
      +              "none",
      +              "cut",
      +              "wipe",
      +              "flash",
      +              "zoom",
      +              "other"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "start_frac",
      +          "end_frac",
      +          "start_s",
      +          "end_s",
      +          "role",
      +          "spoken_summary",
      +          "graphics",
      +          "camera",
      +          "transition_in",
      +          "sounds",
      +          "presenter_behaviour"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 40,
      +      "minItems": 1,
      +      "type": "array"
      +    },
      +    "captions": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "emphasis_style": {
      +          "enum": [
      +            "punch",
      +            "pill",
      +            "color",
      +            "none"
      +          ],
      +          "type": "string"
      +        },
      +        "hidden_under_graphics": {
      +          "type": "boolean"
      +        },
      +        "position": {
      +          "enum": [
      +            "top",
      +            "middle",
      +            "lower",
      +            "bottom"
      +          ],
      +          "type": "string"
      +        },
      +        "present": {
      +          "type": "boolean"
      +        },
      +        "words_per_caption_max": {
      +          "maximum": 12,
      +          "minimum": 1,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "present",
      +        "words_per_caption_max",
      +        "position",
      +        "emphasis_style",
      +        "hidden_under_graphics"
      +      ],
      +      "type": "object"
      +    },
      +    "format": {
      +      "enum": [
      +        "talking_head_graphics",
      +        "faceless",
      +        "broll",
      +        "other"
      +      ],
      +      "type": "string"
      +    },
      +    "music": {
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    "pacing": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "face_share": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        },
      +        "layer_change_every_s": {
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "layer_change_every_s",
      +        "face_share"
      +      ],
      +      "type": "object"
      +    },
      +    "palette": {
      +      "items": {
      +        "pattern": "^#[0-9A-F]{6}$",
      +        "type": "string"
      +      },
      +      "maxItems": 8,
      +      "type": "array"
      +    },
      +    "presenter_framing": {
      +      "description": "wide: the top of the presenter's head is below ~35% of the frame height, with visible room above; close otherwise.",
      +      "enum": [
      +        "close",
      +        "wide"
      +      ],
      +      "type": "string"
      +    },
      +    "presenter_mic": {
      +      "description": "true when the presenter holds a small handheld or clip-on microphone in their hand while speaking (not clipped to clothing).",
      +      "type": "boolean"
      +    },
      +    "source": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "digest": {
      +          "pattern": "^sha256:[0-9a-f]{64}$",
      +          "type": "string"
      +        },
      +        "duration_s": {
      +          "exclusiveMinimum": 0,
      +          "type": "number"
      +        },
      +        "height": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "url": {
      +          "format": "uri",
      +          "maxLength": 2048,
      +          "type": "string"
      +        },
      +        "width": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "digest",
      +        "duration_s",
      +        "width",
      +        "height"
      +      ],
      +      "type": "object"
      +    },
      +    "staging": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "analysis_width": {
      +          "exclusiveMinimum": 0,
      +          "maximum": 9007199254740991,
      +          "type": "integer"
      +        },
      +        "anchors": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "id": {
      +                "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      +                "type": "string"
      +              },
      +              "t_s": {
      +                "minimum": 0,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "t_s"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 80,
      +          "type": "array"
      +        },
      +        "elements": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "beat_index": {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "entry": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "anchors": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      +                          "type": "string"
      +                        },
      +                        "offset_s": {
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "offset_s"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "maxItems": 3,
      +                    "type": "array"
      +                  },
      +                  "displacement": {
      +                    "additionalItems": false,
      +                    "description": "Settled minus first position, in shares of width and height.",
      +                    "items": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "number"
      +                      }
      +                    ],
      +                    "maxItems": 2,
      +                    "minItems": 2,
      +                    "type": "array"
      +                  },
      +                  "duration_s": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "first_visible_s": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "from": {
      +                    "enum": [
      +                      "left",
      +                      "right",
      +                      "top",
      +                      "bottom",
      +                      "lower_left",
      +                      "lower_right",
      +                      "upper_left",
      +                      "upper_right",
      +                      "none"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "method": {
      +                    "enum": [
      +                      "cv-cells/v1",
      +                      "cv-template/v1",
      +                      "cv-parallax/v1",
      +                      "cv-before-after/v1",
      +                      "yunet-native/v1",
      +                      "vision-video",
      +                      "vision-still"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "scale_from": {
      +                    "exclusiveMinimum": 0,
      +                    "type": "number"
      +                  },
      +                  "settled_s": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "style": {
      +                    "enum": [
      +                      "pop",
      +                      "fade",
      +                      "blur_in",
      +                      "slide",
      +                      "scale_up",
      +                      "tilt_in",
      +                      "typewriter",
      +                      "wipe",
      +                      "unknown"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "exit": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "anchors": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "id": {
      +                          "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      +                          "type": "string"
      +                        },
      +                        "offset_s": {
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "id",
      +                        "offset_s"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "maxItems": 3,
      +                    "type": "array"
      +                  },
      +                  "displacement": {
      +                    "additionalItems": false,
      +                    "items": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "number"
      +                      }
      +                    ],
      +                    "maxItems": 2,
      +                    "minItems": 2,
      +                    "type": "array"
      +                  },
      +                  "duration_s": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "last_visible_s": {
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "method": {
      +                    "enum": [
      +                      "cv-cells/v1",
      +                      "cv-template/v1",
      +                      "cv-parallax/v1",
      +                      "cv-before-after/v1",
      +                      "yunet-native/v1",
      +                      "vision-video",
      +                      "vision-still"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "style": {
      +                    "enum": [
      +                      "pop",
      +                      "fade",
      +                      "blur_in",
      +                      "slide",
      +                      "scale_up",
      +                      "tilt_in",
      +                      "typewriter",
      +                      "wipe",
      +                      "unknown",
      +                      "cut",
      +                      "flash"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "to": {
      +                    "enum": [
      +                      "left",
      +                      "right",
      +                      "top",
      +                      "bottom",
      +                      "lower_left",
      +                      "lower_right",
      +                      "upper_left",
      +                      "upper_right",
      +                      "none"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "graphic_index": {
      +                "anyOf": [
      +                  {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Its graphic in beats[beat_index].graphics; null when the beat pass missed it."
      +              },
      +              "id": {
      +                "pattern": "^[a-z0-9_]{1,24}$",
      +                "type": "string"
      +              },
      +              "kind": {
      +                "enum": [
      +                  "toggle_checklist",
      +                  "phone_call",
      +                  "notification",
      +                  "before_after_split",
      +                  "split_screen",
      +                  "stat",
      +                  "product_ui",
      +                  "screenshot",
      +                  "title_card",
      +                  "end_card",
      +                  "particles",
      +                  "tag",
      +                  "lower_third",
      +                  "quote",
      +                  "callout",
      +                  "checklist",
      +                  "compare",
      +                  "progress",
      +                  "rating",
      +                  "overlay_media",
      +                  "insert_media",
      +                  "layout_split",
      +                  "unmapped",
      +                  "other"
      +                ],
      +                "type": "string"
      +              },
      +              "layer": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "blurs_presenter": {
      +                    "type": "boolean"
      +                  },
      +                  "covered_by": {
      +                    "items": {
      +                      "enum": [
      +                        "hair",
      +                        "face",
      +                        "shoulder",
      +                        "hand",
      +                        "body",
      +                        "chair",
      +                        "microphone",
      +                        "desk",
      +                        "other"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "maxItems": 6,
      +                    "type": "array"
      +                  },
      +                  "face_clear": {
      +                    "description": "The face core stays clear in every measured frame of the element's life.",
      +                    "type": "boolean"
      +                  },
      +                  "face_core_cover_max": {
      +                    "description": "The largest share of the face core the element covers in any measured frame.",
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "face_covered_share": {
      +                    "description": "The share of measured frames in which the element covers the face core.",
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "method": {
      +                    "enum": [
      +                      "cv-cells/v1",
      +                      "cv-template/v1",
      +                      "cv-parallax/v1",
      +                      "cv-before-after/v1",
      +                      "yunet-native/v1",
      +                      "vision-video",
      +                      "vision-still"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "value": {
      +                    "enum": [
      +                      "in_front_of_presenter",
      +                      "behind_presenter",
      +                      "no_overlap",
      +                      "presenter_absent",
      +                      "unknown"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "value",
      +                  "method",
      +                  "covered_by"
      +                ],
      +                "type": "object"
      +              },
      +              "motion": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "drift_per_s": {
      +                    "additionalItems": false,
      +                    "items": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "number"
      +                      }
      +                    ],
      +                    "maxItems": 2,
      +                    "minItems": 2,
      +                    "type": "array"
      +                  },
      +                  "kind": {
      +                    "enum": [
      +                      "static",
      +                      "float",
      +                      "drift",
      +                      "scale",
      +                      "moves_with_frame",
      +                      "pushed"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "scale_per_s": {
      +                    "type": "number"
      +                  },
      +                  "wobble": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "amplitude": {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      "period_s": {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      }
      +                    },
      +                    "required": [
      +                      "amplitude",
      +                      "period_s"
      +                    ],
      +                    "type": "object"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "rect_hold": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "left": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "top": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "left",
      +                  "top",
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              "rect_hold_face": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  },
      +                  "left": {
      +                    "maximum": 20,
      +                    "minimum": -20,
      +                    "type": "number"
      +                  },
      +                  "top": {
      +                    "maximum": 20,
      +                    "minimum": -20,
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 20,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "left",
      +                  "top",
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              "rect_method": {
      +                "enum": [
      +                  "cv-cells/v1",
      +                  "cv-template/v1",
      +                  "cv-parallax/v1",
      +                  "cv-before-after/v1",
      +                  "yunet-native/v1",
      +                  "vision-video",
      +                  "vision-still"
      +                ],
      +                "type": "string"
      +              },
      +              "rects": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "rect": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "height": {
      +                          "maximum": 1,
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        "left": {
      +                          "maximum": 1,
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        "top": {
      +                          "maximum": 1,
      +                          "minimum": 0,
      +                          "type": "number"
      +                        },
      +                        "width": {
      +                          "maximum": 1,
      +                          "minimum": 0,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "left",
      +                        "top",
      +                        "width",
      +                        "height"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "t_s": {
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "visible": {
      +                      "maximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "t_s",
      +                    "rect",
      +                    "visible"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 60,
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "id",
      +              "beat_index",
      +              "graphic_index",
      +              "kind"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 40,
      +          "type": "array"
      +        },
      +        "freezes": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "anchors": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "id": {
      +                      "pattern": "^(cut|flash|freeze_start|freeze_end|beat)#\\d+$",
      +                      "type": "string"
      +                    },
      +                    "offset_s": {
      +                      "type": "number"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "offset_s"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 3,
      +                "type": "array"
      +              },
      +              "end_s": {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "ends_with": {
      +                "enum": [
      +                  "cut",
      +                  "flash",
      +                  "unfreeze",
      +                  "end"
      +                ],
      +                "type": "string"
      +              },
      +              "expression": {
      +                "enum": [
      +                  "neutral",
      +                  "smile",
      +                  "surprised",
      +                  "thinking",
      +                  "other"
      +                ],
      +                "type": "string"
      +              },
      +              "face_box_end": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "left": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "top": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "left",
      +                  "top",
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              "face_box_start": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "height": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "left": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "top": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  },
      +                  "width": {
      +                    "maximum": 1,
      +                    "minimum": 0,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "left",
      +                  "top",
      +                  "width",
      +                  "height"
      +                ],
      +                "type": "object"
      +              },
      +              "frame_motion": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "centre_shift": {
      +                    "additionalItems": false,
      +                    "items": [
      +                      {
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "number"
      +                      }
      +                    ],
      +                    "maxItems": 2,
      +                    "minItems": 2,
      +                    "type": "array"
      +                  },
      +                  "scale_end": {
      +                    "exclusiveMinimum": 0,
      +                    "maximum": 4,
      +                    "type": "number"
      +                  }
      +                },
      +                "required": [
      +                  "scale_end",
      +                  "centre_shift"
      +                ],
      +                "type": "object"
      +              },
      +              "gaze": {
      +                "enum": [
      +                  "camera",
      +                  "up_left",
      +                  "up_right",
      +                  "left",
      +                  "right",
      +                  "down",
      +                  "element",
      +                  "closed"
      +                ],
      +                "type": "string"
      +              },
      +              "hands": {
      +                "enum": [
      +                  "at_chest",
      +                  "gesturing",
      +                  "out_of_frame",
      +                  "other"
      +                ],
      +                "type": "string"
      +              },
      +              "head_roll": {
      +                "enum": [
      +                  "left",
      +                  "right",
      +                  "upright"
      +                ],
      +                "type": "string"
      +              },
      +              "pitch": {
      +                "maximum": 3,
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "roll_deg": {
      +                "maximum": 90,
      +                "minimum": -90,
      +                "type": "number"
      +              },
      +              "start_s": {
      +                "minimum": 0,
      +                "type": "number"
      +              },
      +              "yaw": {
      +                "maximum": 3,
      +                "minimum": -3,
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "start_s",
      +              "end_s",
      +              "anchors",
      +              "face_box_start",
      +              "face_box_end",
      +              "roll_deg",
      +              "yaw",
      +              "pitch",
      +              "head_roll",
      +              "ends_with"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 8,
      +          "type": "array"
      +        },
      +        "version": {
      +          "const": "reference-staging-v1",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "version",
      +        "analysis_width",
      +        "anchors",
      +        "elements",
      +        "freezes"
      +      ],
      +      "type": "object"
      +    },
      +    "unmapped": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "beat_index": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "suggested_substitute": {
      +            "maxLength": 200,
      +            "type": "string"
      +          },
      +          "what": {
      +            "maxLength": 200,
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "what",
      +          "beat_index",
      +          "suggested_substitute"
      +        ],
      +        "type": "object"
      +      },
      +      "maxItems": 40,
      +      "type": "array"
      +    },
      +    "version": {
      +      "const": "reference-profile-v1",
      +      "type": "string"
      +    },
      +    "voice": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "method": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "cut_safe_db": {
      +              "exclusiveMaximum": 0,
      +              "type": "number"
      +            },
      +            "pause_drop_db": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "pause_min_run_s": {
      +              "exclusiveMinimum": 0,
      +              "type": "number"
      +            },
      +            "pitch": {
      +              "const": "yin",
      +              "type": "string"
      +            },
      +            "sample_rate": {
      +              "exclusiveMinimum": 0,
      +              "maximum": 9007199254740991,
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "pause_drop_db",
      +            "pause_min_run_s",
      +            "cut_safe_db",
      +            "pitch",
      +            "sample_rate"
      +          ],
      +          "type": "object"
      +        },
      +        "presenter_speaker": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "speakers": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "hinge": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "coverage": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "evaluated_sentences": {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  "median_position": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Where the hinge falls, as the share of the sentence's words before it."
      +                  },
      +                  "median_seconds": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "sentence_share": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Share of acoustically evaluated sentences with an internal pause of 150 ms or more; not all sentences."
      +                  },
      +                  "status": {
      +                    "enum": [
      +                      "measured",
      +                      "not_evaluated"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "timestamp_sentence_share": {
      +                    "anyOf": [
      +                      {
      +                        "maximum": 1,
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  }
      +                },
      +                "required": [
      +                  "status",
      +                  "sentence_share",
      +                  "evaluated_sentences",
      +                  "coverage",
      +                  "timestamp_sentence_share",
      +                  "median_position",
      +                  "median_seconds"
      +                ],
      +                "type": "object"
      +              },
      +              "long_pause_count": {
      +                "description": "Same-speaker pauses over two seconds, kept with their punctuation kind.",
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "loudness": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "range_db_p10_p90": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "status": {
      +                    "enum": [
      +                      "measured",
      +                      "unmeasured"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "status",
      +                  "range_db_p10_p90"
      +                ],
      +                "type": "object"
      +              },
      +              "pace": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "basis": {
      +                    "enum": [
      +                      "sentence_spans",
      +                      "turn_spans"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "status": {
      +                    "enum": [
      +                      "measured",
      +                      "unmeasured"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "words_per_second": {
      +                    "anyOf": [
      +                      {
      +                        "exclusiveMinimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Words over the sum of sentence spans: pauses inside a sentence count, gaps between sentences and other speakers do not."
      +                  }
      +                },
      +                "required": [
      +                  "status",
      +                  "words_per_second",
      +                  "basis"
      +                ],
      +                "type": "object"
      +              },
      +              "pauses": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "comma": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "acoustic_no_dip_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "acoustic_pause": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "acoustic_unconfirmed_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "cut_safe": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "timestamp": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      }
      +                    },
      +                    "required": [
      +                      "timestamp",
      +                      "acoustic_pause",
      +                      "cut_safe",
      +                      "acoustic_no_dip_count",
      +                      "acoustic_unconfirmed_count"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "mid_phrase": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "acoustic_no_dip_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "acoustic_pause": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "acoustic_unconfirmed_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "cut_safe": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "timestamp": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      }
      +                    },
      +                    "required": [
      +                      "timestamp",
      +                      "acoustic_pause",
      +                      "cut_safe",
      +                      "acoustic_no_dip_count",
      +                      "acoustic_unconfirmed_count"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "sentence_end": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "acoustic_no_dip_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "acoustic_pause": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "acoustic_unconfirmed_count": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "cut_safe": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "timestamp": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "count": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "count_ge150ms": {
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "median_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          },
      +                          "p90_s": {
      +                            "anyOf": [
      +                              {
      +                                "minimum": 0,
      +                                "type": "number"
      +                              },
      +                              {
      +                                "type": "null"
      +                              }
      +                            ]
      +                          }
      +                        },
      +                        "required": [
      +                          "count",
      +                          "median_s",
      +                          "p90_s",
      +                          "count_ge150ms"
      +                        ],
      +                        "type": "object"
      +                      }
      +                    },
      +                    "required": [
      +                      "timestamp",
      +                      "acoustic_pause",
      +                      "cut_safe",
      +                      "acoustic_no_dip_count",
      +                      "acoustic_unconfirmed_count"
      +                    ],
      +                    "type": "object"
      +                  }
      +                },
      +                "required": [
      +                  "sentence_end",
      +                  "comma",
      +                  "mid_phrase"
      +                ],
      +                "type": "object"
      +              },
      +              "pitch": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "ceiling_basis": {
      +                    "description": "default 400 Hz; low_f0: a median under 165 Hz at 400 is measured again at 300 Hz.",
      +                    "enum": [
      +                      "default",
      +                      "low_f0",
      +                      "configured"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "ceiling_hz": {
      +                    "exclusiveMinimum": 0,
      +                    "type": "number"
      +                  },
      +                  "median_hz": {
      +                    "anyOf": [
      +                      {
      +                        "exclusiveMinimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "p10_hz": {
      +                    "anyOf": [
      +                      {
      +                        "exclusiveMinimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "p90_hz": {
      +                    "anyOf": [
      +                      {
      +                        "exclusiveMinimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "range_st": {
      +                    "anyOf": [
      +                      {
      +                        "minimum": 0,
      +                        "type": "number"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ]
      +                  },
      +                  "status": {
      +                    "enum": [
      +                      "measured",
      +                      "no_voiced_frames"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "voiced_frames": {
      +                    "maximum": 9007199254740991,
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  }
      +                },
      +                "required": [
      +                  "status",
      +                  "ceiling_hz",
      +                  "ceiling_basis",
      +                  "median_hz",
      +                  "p10_hz",
      +                  "p90_hz",
      +                  "range_st",
      +                  "voiced_frames"
      +                ],
      +                "type": "object"
      +              },
      +              "sentence_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              "speaker": {
      +                "description": "The transcription vendor's speaker id.",
      +                "pattern": "^[A-Za-z0-9_-]{1,40}$",
      +                "type": "string"
      +              },
      +              "warnings": {
      +                "items": {
      +                  "enum": [
      +                    "no_sentence_terminal_punctuation_pace_uses_turn_spans",
      +                    "background_music_present_f0_and_intensity_may_be_contaminated"
      +                  ],
      +                  "type": "string"
      +                },
      +                "maxItems": 2,
      +                "type": "array"
      +              },
      +              "word_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "speaker",
      +              "word_count",
      +              "sentence_count",
      +              "pace",
      +              "pauses",
      +              "long_pause_count",
      +              "hinge",
      +              "pitch",
      +              "loudness",
      +              "warnings"
      +            ],
      +            "type": "object"
      +          },
      +          "maxItems": 6,
      +          "minItems": 1,
      +          "type": "array"
      +        },
      +        "version": {
      +          "const": "voice-profile-v1",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "version",
      +        "method",
      +        "presenter_speaker",
      +        "speakers"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "version",
      +    "source",
      +    "format",
      +    "beats",
      +    "captions",
      +    "pacing",
      +    "palette",
      +    "music",
      +    "unmapped",
      +    "analysis"
      +  ],
      +  "type": "object"
      +}
    • changedInput schema / properties / document / properties / method / properties / method_id / enum
      Previous value: -[
      -  "ugc-product-intro",
      -  "ugc-faq-answer",
      -  "faceless-explainer",
      -  "product-image-story",
      -  "website-proof-demo",
      -  "kinetic-launch"
      -]New value: +[
      +  "ugc-product-intro",
      +  "ugc-faq-answer",
      +  "faceless-explainer",
      +  "product-image-story",
      +  "website-proof-demo",
      +  "kinetic-launch",
      +  "reference-remake"
      +]
  5. Changed1 schema field changedv0.34.0
    • changedInput schema / properties / document / properties / brief / properties / native / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actor_gender": {
      -            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      -            "enum": [
      -              "female",
      -              "male"
      -            ],
      -            "type": "string"
      -          },
      -          "actor_id": {
      -            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      -            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "aspect_ratio": {
      -            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      -            "enum": [
      -              "9:16",
      -              "1:1",
      -              "16:9"
      -            ],
      -            "type": "string"
      -          },
      -          "background": {
      -            "enum": [
      -              "white",
      -              "blur",
      -              "contain"
      -            ],
      -            "type": "string"
      -          },
      -          "broll_policy": {
      -            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      -            "enum": [
      -              "anyone",
      -              "no_actor",
      -              "no_people"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_style": {
      -            "default": "hormozi",
      -            "enum": [
      -              "hormozi",
      -              "tiktok",
      -              "minimal"
      -            ],
      -            "type": "string"
      -          },
      -          "captions": {
      -            "default": false,
      -            "type": "boolean"
      -          },
      -          "image": {
      -            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      -            "format": "starts_with",
      -            "maxLength": 2048,
      -            "pattern": "^https:\\/\\/.*",
      -            "type": "string"
      -          },
      -          "inserts": {
      -            "description": "Text-anchored image inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, captions=false, 1080p and explicit broll_policy=anyone.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "media_type": {
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_url",
      -                "media_type",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 49,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "look": {
      -            "default": "natural",
      -            "enum": [
      -              "natural",
      -              "commercial",
      -              "raw_iphone"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "person": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "resolution": {
      -            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      -            "enum": [
      -              "720p",
      -              "1080p",
      -              "4k"
      -            ],
      -            "type": "string"
      -          },
      -          "script": {
      -            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v3, eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "segments": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "duration_seconds": {
      -                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "actor",
      -                    "media"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "uri",
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "script": {
      -                  "maxLength": 10000,
      -                  "minLength": 1,
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "kind"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "tts_model": {
      -            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): eleven_v4 for the Russian presets and for catalog voices named ru_*, gemini-3.8-flash-tts for its own voices, eleven_v3 for every other preset and catalog voice. A raw voice_id speaks eleven_v4 when the script is mostly Cyrillic and eleven_v3 otherwise. An explicit tts_model always wins. eleven_v4, eleven_v3 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are an eleven_v3 and eleven_v4 convention and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      -            "enum": [
      -              "eleven_v3",
      -              "eleven_flash_v2_5",
      -              "eleven_turbo_v2_5",
      -              "eleven_v4",
      -              "gemini-3.8-flash-tts"
      -            ],
      -            "type": "string"
      -          },
      -          "visible_ai_label": {
      -            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      -            "type": "boolean"
      -          },
      -          "voice": {
      -            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "voice_id": {
      -            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      -            "pattern": "^[A-Za-z0-9]{16,32}$",
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "skill": {
      -        "const": "make_ugc",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "script",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "script": {
      -                "maxLength": 10000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "script"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brief": {
      -                "maxLength": 5000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "brief",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "brief"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "skill": {
      -        "const": "make_faceless",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actor_gender": {
      +            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      +            "enum": [
      +              "female",
      +              "male"
      +            ],
      +            "type": "string"
      +          },
      +          "actor_id": {
      +            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      +            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "aspect_ratio": {
      +            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      +            "enum": [
      +              "9:16",
      +              "1:1",
      +              "16:9"
      +            ],
      +            "type": "string"
      +          },
      +          "background": {
      +            "enum": [
      +              "white",
      +              "blur",
      +              "contain"
      +            ],
      +            "type": "string"
      +          },
      +          "broll_policy": {
      +            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      +            "enum": [
      +              "anyone",
      +              "no_actor",
      +              "no_people"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_emphasis": {
      +            "description": "Key words or short phrases to emphasise, each quoted from script and matched as an insert quote is (case and punctuation ignored). An item is the quote, or { quote, look }: look punch shows a small lead-in line from the same sentence over the quote as a large glowing keyword, look pill shows the quote alone in a rounded pill, look color shows it in the accent colour at the same size. Without a look, punch draws punch, hormozi draws color, and other presets draw the quote larger in their highlight colour. Every occurrence is emphasised. Requires captions=true and script; a quote absent from script is refused before any charge.",
      +            "items": {
      +              "anyOf": [
      +                {
      +                  "maxLength": 40,
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "look": {
      +                      "enum": [
      +                        "punch",
      +                        "pill",
      +                        "color"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "punch_in": {
      +                      "description": "Long form only: zoom into the presenter while the quote is spoken. Drawn only where captions are drawn and the presenter is on screen; otherwise warnings[] names it.",
      +                      "type": "boolean"
      +                    },
      +                    "quote": {
      +                      "maxLength": 40,
      +                      "minLength": 1,
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "quote"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 20,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "caption_mode": {
      +            "description": "full (default when omitted): every spoken word is captioned. highlights: captions appear only around caption_emphasis quotes (lead-in, quote, short tail) and nowhere else; requires caption_emphasis. In both modes captions are hidden while a full-frame insert is on screen or a template meets their band.",
      +            "enum": [
      +              "full",
      +              "highlights"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_style": {
      +            "default": "hormozi",
      +            "description": "Caption look when captions=true. hormozi: the default: condensed bold uppercase, two to four white words per cue mid-lower in the frame, one keyword per cue in orange (the emphasised words, or else the cue's longest word that is not a stop-word); Latin and Cyrillic in one font. tiktok: bold rounded uppercase, one or two words at a time; the spoken word turns yellow and grows. youtube: clean bold sans-serif, five words on a dark rounded box near the bottom; words fade in, the spoken word in red. instagram: comic uppercase with a pink outline, two words at a time; the spoken word pops in orange. minimalist: plain sans-serif, five words on a half-transparent dark band, gentle fade. neon: cyan uppercase with a magenta outline, two words at a time; the spoken word pops in white. genz: large comic uppercase, one word at a time, slamming in with a pink highlight. campfire: rounded comic uppercase, three words; spoken words light up gold and stay lit. midnight: spooky uppercase, two words, slow fade; the spoken word in red. plottwist: heavy sans-serif, three words; the spoken word turns sky blue and grows. headline: tall condensed uppercase on a solid black band, three words; the spoken word scales up in yellow. promo: heavy sans-serif on a blue pill, three words; the spoken word pops in yellow. lecture: readable sans-serif, six words on a dark rounded box; the spoken word in green. highlighter: heavy sans-serif, four words; spoken words turn lime and stay lit. studio: sans-serif, seven words typed in on a blurred dark box; the spoken word in amber. broadcast: outlined sans-serif, eight words low in the frame; the spoken word in pale yellow. arcade: blocky yellow uppercase, two words; the spoken word bounces in white. clutch: brush uppercase, one word at a time, slamming in green. bubblegum: rounded display letters with a pink outline, two words; the spoken word bounces in yellow. crayon: marker handwriting with a navy outline, two words; the spoken word pops in orange. lyrics: handwritten script, five words; spoken words light up pink and stay lit. bassdrop: outlined display uppercase, one word at a time, scaling in orange. punch: mid-frame setup and punch: a small white lead-in line over one or two large blue glowing keywords; other words small and white. Alias: minimal draws minimalist. A font that cannot draw the script's letters is replaced by a plain sans-serif.",
      +            "enum": [
      +              "hormozi",
      +              "tiktok",
      +              "youtube",
      +              "instagram",
      +              "minimalist",
      +              "neon",
      +              "genz",
      +              "campfire",
      +              "midnight",
      +              "plottwist",
      +              "headline",
      +              "promo",
      +              "lecture",
      +              "highlighter",
      +              "studio",
      +              "broadcast",
      +              "arcade",
      +              "clutch",
      +              "bubblegum",
      +              "crayon",
      +              "lyrics",
      +              "bassdrop",
      +              "punch",
      +              "minimal"
      +            ],
      +            "type": "string"
      +          },
      +          "captions": {
      +            "default": false,
      +            "description": "Burn word-timed captions into the video, over the presenter and over inserts. Not available with segments.",
      +            "type": "boolean"
      +          },
      +          "image": {
      +            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      +            "format": "starts_with",
      +            "maxLength": 2048,
      +            "pattern": "^https:\\/\\/.*",
      +            "type": "string"
      +          },
      +          "inserts": {
      +            "description": "Text-anchored image or video inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, 1080p and explicit broll_policy=anyone. Captions draw over inserts.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "description": "Optional picture zoom. A picture always fills the frame, cut to its shape when the shapes differ (warnings[] names the share cut). amount is the zoom beyond filling: in grows from 1 to 1+amount, out shrinks from 1+amount to 1. No motion by default.",
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "transition": {
      +                  "description": "How the insert comes in and goes out: cut (default), wipe (slides across the presenter), flash (a white flash on the cut) or zoom (eases in from a closer framing). It never moves the insert's start or end.",
      +                  "enum": [
      +                    "cut",
      +                    "wipe",
      +                    "flash",
      +                    "zoom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 49,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "layout_windows": {
      +            "description": "Text-anchored reframings of the presenter: split (9:16 only) or card. Windows may not overlap one another or an insert. Same requirements as inserts. A covered or blurred presenter is still delivered vendor work and is billed as face time.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "blur_presenter": {
      +                  "description": "Card only: blur the presenter behind the card.",
      +                  "type": "boolean"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "layout": {
      +                  "description": "split: presenter in the top half, media in the bottom half, captions on the seam (9:16 only). card: the media in a centred card over the presenter.",
      +                  "enum": [
      +                    "split",
      +                    "card"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "layout"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "look": {
      +            "default": "natural",
      +            "enum": [
      +              "natural",
      +              "commercial",
      +              "raw_iphone"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 100,
      +            "type": "string"
      +          },
      +          "overlays": {
      +            "description": "Text-anchored images or videos over the visible presenter, in a corner or a band at the top or bottom. At most 2 on screen at once, and two on screen together need positions that do not share a corner. Captions move to the middle or bottom third when an overlay meets them, never up over the face, and hide while neither is free. An overlay is not drawn while a full-frame insert is on screen. Same requirements as inserts: script, long-form qualification on the server, 1080p and explicit broll_policy=anyone. The presenter stays on screen, so the price does not change.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ],
      +                  "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                },
      +                "asset_id": {
      +                  "description": "A ready PNG or JPEG image or MP4 video from your own assets (list_assets), instead of media_url. Pass exactly one of the two; media_type must match the asset's kind.",
      +                  "pattern": "^ast_[a-f0-9]{32}$",
      +                  "type": "string"
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "enter": {
      +                  "description": "How it appears: cut (default), fade, slide (in from the nearest edge) or tilt_in. It leaves with a cut.",
      +                  "enum": [
      +                    "cut",
      +                    "fade",
      +                    "slide",
      +                    "tilt_in"
      +                  ],
      +                  "type": "string"
      +                },
      +                "id": {
      +                  "description": "Unique across inserts, overlays and layout_windows.",
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "image (PNG or JPEG) or video (MP4, H.264 or HEVC, 8-bit SDR). A video plays muted from its first frame and is cut where its words end; one shorter than its words holds its last frame, and warnings[] names it.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "description": "Public https URL of the media. Pass exactly one of media_url or asset_id.",
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                },
      +                "position": {
      +                  "description": "A corner (top_left, top_right, bottom_left, bottom_right), or a band across the top or bottom.",
      +                  "enum": [
      +                    "top_left",
      +                    "top_right",
      +                    "bottom_left",
      +                    "bottom_right",
      +                    "top",
      +                    "bottom"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_type",
      +                "anchor",
      +                "position"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 10,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "person": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "resolution": {
      +            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      +            "enum": [
      +              "720p",
      +              "1080p",
      +              "4k"
      +            ],
      +            "type": "string"
      +          },
      +          "script": {
      +            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v3, eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "segments": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "duration_seconds": {
      +                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      +                  "exclusiveMinimum": 0,
      +                  "type": "number"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "actor",
      +                    "media"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "format": "uri",
      +                  "maxLength": 2048,
      +                  "type": "string"
      +                },
      +                "script": {
      +                  "maxLength": 10000,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "kind"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "template_sounds": {
      +            "anyOf": [
      +              {
      +                "const": false,
      +                "type": "boolean"
      +              },
      +              {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "answer": {
      +                    "enum": [
      +                      "answer_confirm",
      +                      "answer_open",
      +                      "answer_pop",
      +                      "answer_select"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "click": {
      +                    "enum": [
      +                      "click_mouse",
      +                      "click_soft",
      +                      "click_crisp",
      +                      "click_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "flash": {
      +                    "enum": [
      +                      "shutter",
      +                      "glitch"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "notify": {
      +                    "enum": [
      +                      "chime",
      +                      "glass_ping",
      +                      "glass_soft",
      +                      "bong",
      +                      "question_ping"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "ring": {
      +                    "enum": [
      +                      "ring_classic",
      +                      "ring_marimba",
      +                      "ring_digital"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "step": {
      +                    "enum": [
      +                      "drop",
      +                      "drop_high",
      +                      "tick",
      +                      "pluck",
      +                      "pluck_bright"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "toggle": {
      +                    "enum": [
      +                      "switch_flip",
      +                      "toggle_snap",
      +                      "switch_heavy",
      +                      "switch_light"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "whoosh": {
      +                    "enum": [
      +                      "whoosh",
      +                      "whip",
      +                      "paper_swipe",
      +                      "sweep"
      +                    ],
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              }
      +            ],
      +            "description": "Template sounds: false for none, or { beat: name } over the defaults; list_template_sounds names them."
      +          },
      +          "template_theme": {
      +            "additionalProperties": false,
      +            "description": "The look of every template in the run: a preset and an optional accent; only with templates.",
      +            "properties": {
      +              "accent": {
      +                "description": "#RRGGBB in place of the preset's accent: the pills' fill and the accent text. Refused below 3:1 against the colours it meets.",
      +                "pattern": "^#[0-9A-Fa-f]{6}$",
      +                "type": "string"
      +              },
      +              "preset": {
      +                "description": "clean_light (light cards on our blue gradient), bold_dark (dark cards, a yellow accent), neon (black, cyan to blue), paper (warm cream, terracotta) or mono (black and white); omitted is clean_light.",
      +                "enum": [
      +                  "clean_light",
      +                  "bold_dark",
      +                  "neon",
      +                  "paper",
      +                  "mono"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "templates": {
      +            "description": "Graphic templates, each { id, kind, anchor, cover_words?, placement?, transition?, data }. On any script run. Templates never change the price: a plain run is billed per second of finished video (30/s); a run with inserts, overlays or layout_windows is billed long-form-v1, and a covered presenter there is still face time. Ids are unique across inserts, overlays, layout_windows and templates. Text is one line of Latin or the script's own letters, digits and common punctuation, with no emoji; a wide CJK glyph counts 2 toward a limit, and long text shrinks to fit the kind's width. size small|medium|large scales a kind; absent is medium. A media field takes { asset_id } of a ready asset of the kind it names. An inner quote names words inside the template's own words, after the one before it: its beat lands on their first word, and must not fall under an insert or full-frame template; a click or step without one is spread evenly. A beat spoken before its template has entered moves just after the enter, with a warning. A template that meets the caption band hides captions while it shows; one elsewhere, such as a small one at the top, leaves them. A full-frame template also hides the presenter, overlays and over-presenter templates while it shows, never meets a wipe or zoom insert, and the covered presenter is billed. At most 2 overlays and over-presenter templates show at once, on footprints that do not overlap. template_theme sets the look of them all. Kinds: tag (over): a short gradient pill over the presenter or an insert; without position it sits in the caption spot and hides captions while it shows; data text ≤ 32, position? top|center|bottom, size? small|medium|large. lower_third (over): a name and role bar low in the frame; captions are hidden while it shows; data name ≤ 28, role? ≤ 36, side left|right, size? small|medium|large. end_card (over): a site pill with an optional call to action in the caption spot; captions are hidden while it shows; data site ≤ 32, cta? ≤ 48, size? small|medium|large. title_card (full): a full-frame hook card: the title (up to two lines) on a white card beside an optional logo image, and an optional chip under it; data title ≤ 48, chip? ≤ 32, logo? {asset_id} image, size? small|medium|large. quote (full): a full-frame quote: marks, the text in up to four lines, then the author with an optional round photo, cut to a circle; data text ≤ 120, author? ≤ 32, photo? {asset_id} image (cut to fill), size? small|medium|large. stat (full|over): a number counting up from 0 to value (up to 2 decimals), with prefix and suffix around it and a label under it; full fills the frame, over sits at chest level on a card; data value number, prefix? ≤ 6, suffix? ≤ 6, label? ≤ 32, size? small|medium|large. callout (over): an arrow or ring that lands on a point of the frame and pulses, target {x,y} in % of the frame from its top left, with an optional label pill below or above it; it may point at the face, its label keeps off the face where it can; also over an insert; data target {x,y}, style arrow|ring, text? ≤ 24, size? small|medium|large. checklist (over): 2–4 rows, each an optional icon, a label and a switch or check box set on or off; a cursor clicks rows in turn (item is the row's index from 0), each click flipping it; below the face; data items 2–4 of {label ≤ 24, on true|false, icon? phone|briefcase|user|clock|chat|star}, clicks? 0–6 of {item number, quote? inner quote}, style? switch|check, size? small|medium|large. phone_call (over): an incoming call on a neutral phone at the side (right unless side left): the caller, a subtitle and a round avatar ring, then the call is answered on answer_at and its timer runs; beside the face in wide frames, under it in tall ones; data caller ≤ 24, subtitle? ≤ 32, avatar? {asset_id} image (cut to fill), answer_at inner quote, side? left|right, size? small|medium|large. compare (full): a full-frame card showing the before image, then the after image sweeps in on a diagonal on reveal_at and both stay side by side, each with an optional label pill; both images are cut to fill a 3:5 card; data before {asset_id} image (cut to fill), after {asset_id} image (cut to fill), labels? {before? ≤ 20, after? ≤ 20}, reveal_at inner quote, size? small|medium|large. notification (over): a phone notification at the top, above the face: an icon (else the app's initial), the app, a title and a body line; it drops in, holds at least 1.2 s, then leaves before its span ends; data app ≤ 20, title ≤ 32, body ≤ 80, icon? phone|briefcase|user|clock|chat|star, size? small|medium|large. progress (over): 2–5 steps in a column on a card, each completing with a check in turn, on its advance_at quote (one per step, in order) or spread evenly; below the face; data steps 2–5 of ≤ 20, advance_at? 2–5 of inner quote, size? small|medium|large. rating (over): five stars on a card filling in turn up to stars (1–5 in halves, a half star half filled), an optional label under them; at chest level; data stars number, label? ≤ 32, size? small|medium|large.",
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "position": {
      +                          "enum": [
      +                            "top",
      +                            "center",
      +                            "bottom"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "tag",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "name": {
      +                          "maxLength": 28,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "role": {
      +                          "maxLength": 36,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "name",
      +                        "side"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "lower_third",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "cta": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "site": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "site"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "end_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "chip": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "logo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 48,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "title"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "title_card",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "author": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "photo": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "text": {
      +                          "maxLength": 120,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "text"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "quote",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "prefix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "suffix": {
      +                          "maxLength": 6,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "value": {
      +                          "maximum": 999999999,
      +                          "minimum": 0,
      +                          "multipleOf": 0.01,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "value"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "stat",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "arrow",
      +                            "ring"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "target": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "x": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            },
      +                            "y": {
      +                              "maximum": 100,
      +                              "minimum": 0,
      +                              "type": "number"
      +                            }
      +                          },
      +                          "required": [
      +                            "x",
      +                            "y"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "text": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "target",
      +                        "style"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "callout",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "clicks": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "item": {
      +                                "maximum": 3,
      +                                "minimum": 0,
      +                                "type": "integer"
      +                              },
      +                              "quote": {
      +                                "maxLength": 200,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              }
      +                            },
      +                            "required": [
      +                              "item"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 6,
      +                          "type": "array"
      +                        },
      +                        "items": {
      +                          "items": {
      +                            "additionalProperties": false,
      +                            "properties": {
      +                              "icon": {
      +                                "enum": [
      +                                  "phone",
      +                                  "briefcase",
      +                                  "user",
      +                                  "clock",
      +                                  "chat",
      +                                  "star"
      +                                ],
      +                                "type": "string"
      +                              },
      +                              "label": {
      +                                "maxLength": 24,
      +                                "minLength": 1,
      +                                "type": "string"
      +                              },
      +                              "on": {
      +                                "type": "boolean"
      +                              }
      +                            },
      +                            "required": [
      +                              "label",
      +                              "on"
      +                            ],
      +                            "type": "object"
      +                          },
      +                          "maxItems": 4,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "style": {
      +                          "enum": [
      +                            "switch",
      +                            "check"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "items"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "checklist",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "answer_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "avatar": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "caller": {
      +                          "maxLength": 24,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "side": {
      +                          "enum": [
      +                            "left",
      +                            "right"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "subtitle": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "caller",
      +                        "answer_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "phone_call",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "after": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "before": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "asset_id": {
      +                              "description": "A ready asset from list_assets, of the kind the slot takes.",
      +                              "pattern": "^ast_[a-f0-9]{32}$",
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "asset_id"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        "labels": {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "after": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            },
      +                            "before": {
      +                              "maxLength": 20,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "type": "object"
      +                        },
      +                        "reveal_at": {
      +                          "maxLength": 200,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "before",
      +                        "after",
      +                        "reveal_at"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "compare",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "app": {
      +                          "maxLength": 20,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "body": {
      +                          "maxLength": 80,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "icon": {
      +                          "enum": [
      +                            "phone",
      +                            "briefcase",
      +                            "user",
      +                            "clock",
      +                            "chat",
      +                            "star"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "title": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "app",
      +                        "title",
      +                        "body"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "notification",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "advance_at": {
      +                          "items": {
      +                            "maxLength": 200,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "steps": {
      +                          "items": {
      +                            "maxLength": 20,
      +                            "minLength": 1,
      +                            "type": "string"
      +                          },
      +                          "maxItems": 5,
      +                          "minItems": 2,
      +                          "type": "array"
      +                        }
      +                      },
      +                      "required": [
      +                        "steps"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "progress",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 10000,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ],
      +                      "description": "The words it starts on, as an insert anchor: { startWord, endWord } or { quote, occurrence? }."
      +                    },
      +                    "cover_words": {
      +                      "description": "How many spoken words it stays on screen, counted from the first word of its anchor. Omitted means the anchored words only.",
      +                      "exclusiveMinimum": 0,
      +                      "maximum": 10000,
      +                      "type": "integer"
      +                    },
      +                    "data": {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "label": {
      +                          "maxLength": 32,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        },
      +                        "size": {
      +                          "enum": [
      +                            "small",
      +                            "medium",
      +                            "large"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "stars": {
      +                          "maximum": 5,
      +                          "minimum": 1,
      +                          "multipleOf": 0.5,
      +                          "type": "number"
      +                        }
      +                      },
      +                      "required": [
      +                        "stars"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "id": {
      +                      "description": "Unique across inserts, overlays, layout_windows and templates.",
      +                      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                      "type": "string"
      +                    },
      +                    "kind": {
      +                      "const": "rating",
      +                      "type": "string"
      +                    },
      +                    "placement": {
      +                      "description": "over (drawn over the presenter) or full (fills the frame); omitted means the kind's first placement, and a kind takes only the placements its catalog line names.",
      +                      "enum": [
      +                        "over",
      +                        "full"
      +                      ],
      +                      "type": "string"
      +                    },
      +                    "transition": {
      +                      "description": "Full placement only, as an insert's transition.",
      +                      "enum": [
      +                        "cut",
      +                        "wipe",
      +                        "flash",
      +                        "zoom"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "id",
      +                    "anchor",
      +                    "kind",
      +                    "data"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "maxItems": 12,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "tts_model": {
      +            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): eleven_v4 for the Russian presets and for catalog voices named ru_*, gemini-3.8-flash-tts for its own voices, eleven_v3 for every other preset and catalog voice. A raw voice_id speaks eleven_v4 when the script is mostly Cyrillic and eleven_v3 otherwise. An explicit tts_model always wins. eleven_v4, eleven_v3 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are an eleven_v3 and eleven_v4 convention and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      +            "enum": [
      +              "eleven_v3",
      +              "eleven_flash_v2_5",
      +              "eleven_turbo_v2_5",
      +              "eleven_v4",
      +              "gemini-3.8-flash-tts"
      +            ],
      +            "type": "string"
      +          },
      +          "visible_ai_label": {
      +            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      +            "type": "boolean"
      +          },
      +          "voice": {
      +            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "voice_id": {
      +            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      +            "pattern": "^[A-Za-z0-9]{16,32}$",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_ugc",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "script",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "script": {
      +                "maxLength": 10000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "script"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brief": {
      +                "maxLength": 5000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "brief",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "brief"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "skill": {
      +        "const": "make_faceless",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  }
      +]
  6. Changed1 schema field changedv0.33.0
    • changedInput schema / properties / document / properties / brief / properties / native / oneOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "actor_gender": {
      -            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      -            "enum": [
      -              "female",
      -              "male"
      -            ],
      -            "type": "string"
      -          },
      -          "actor_id": {
      -            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      -            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "aspect_ratio": {
      -            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      -            "enum": [
      -              "9:16",
      -              "1:1",
      -              "16:9"
      -            ],
      -            "type": "string"
      -          },
      -          "background": {
      -            "enum": [
      -              "white",
      -              "blur",
      -              "contain"
      -            ],
      -            "type": "string"
      -          },
      -          "broll_policy": {
      -            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      -            "enum": [
      -              "anyone",
      -              "no_actor",
      -              "no_people"
      -            ],
      -            "type": "string"
      -          },
      -          "caption_style": {
      -            "default": "hormozi",
      -            "enum": [
      -              "hormozi",
      -              "tiktok",
      -              "minimal"
      -            ],
      -            "type": "string"
      -          },
      -          "captions": {
      -            "default": false,
      -            "type": "boolean"
      -          },
      -          "image": {
      -            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      -            "format": "starts_with",
      -            "maxLength": 2048,
      -            "pattern": "^https:\\/\\/.*",
      -            "type": "string"
      -          },
      -          "inserts": {
      -            "description": "Text-anchored image inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, captions=false, 1080p and explicit broll_policy=anyone.",
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "anchor": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "endWord": {
      -                          "exclusiveMinimum": 0,
      -                          "maximum": 9007199254740991,
      -                          "type": "integer"
      -                        },
      -                        "startWord": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        }
      -                      },
      -                      "required": [
      -                        "startWord",
      -                        "endWord"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "occurrence": {
      -                          "maximum": 9007199254740991,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "quote": {
      -                          "maxLength": 10000,
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "quote"
      -                      ],
      -                      "type": "object"
      -                    }
      -                  ]
      -                },
      -                "cover_words": {
      -                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      -                  "exclusiveMinimum": 0,
      -                  "maximum": 10000,
      -                  "type": "integer"
      -                },
      -                "id": {
      -                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      -                  "type": "string"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "media_type": {
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "starts_with",
      -                  "maxLength": 2048,
      -                  "pattern": "^https:\\/\\/.*",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "id",
      -                "media_url",
      -                "media_type",
      -                "anchor"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 49,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "look": {
      -            "default": "natural",
      -            "enum": [
      -              "natural",
      -              "commercial",
      -              "raw_iphone"
      -            ],
      -            "type": "string"
      -          },
      -          "name": {
      -            "maxLength": 100,
      -            "type": "string"
      -          },
      -          "person": {
      -            "maxLength": 500,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "resolution": {
      -            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      -            "enum": [
      -              "720p",
      -              "1080p",
      -              "4k"
      -            ],
      -            "type": "string"
      -          },
      -          "script": {
      -            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v3, eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      -            "maxLength": 10000,
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "segments": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "duration_seconds": {
      -                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      -                  "exclusiveMinimum": 0,
      -                  "type": "number"
      -                },
      -                "image_motion": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "amount": {
      -                      "exclusiveMaximum": 1,
      -                      "minimum": 0,
      -                      "type": "number"
      -                    },
      -                    "direction": {
      -                      "enum": [
      -                        "in",
      -                        "out"
      -                      ],
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "direction",
      -                    "amount"
      -                  ],
      -                  "type": "object"
      -                },
      -                "kind": {
      -                  "enum": [
      -                    "actor",
      -                    "media"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_type": {
      -                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      -                  "enum": [
      -                    "image",
      -                    "video"
      -                  ],
      -                  "type": "string"
      -                },
      -                "media_url": {
      -                  "format": "uri",
      -                  "maxLength": 2048,
      -                  "type": "string"
      -                },
      -                "script": {
      -                  "maxLength": 10000,
      -                  "minLength": 1,
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "kind"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 5,
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "tts_model": {
      -            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): eleven_v4 for the Russian presets and for catalog voices named ru_*, gemini-3.8-flash-tts for its own voices, eleven_v3 for every other preset and catalog voice. A raw voice_id speaks eleven_v4 when the script is mostly Cyrillic and eleven_v3 otherwise. An explicit tts_model always wins. eleven_v4, eleven_v3 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are an eleven_v3 and eleven_v4 convention and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      -            "enum": [
      -              "eleven_v3",
      -              "eleven_flash_v2_5",
      -              "eleven_turbo_v2_5",
      -              "eleven_v4",
      -              "gemini-3.8-flash-tts"
      -            ],
      -            "type": "string"
      -          },
      -          "voice": {
      -            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      -            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -            "type": "string"
      -          },
      -          "voice_id": {
      -            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      -            "pattern": "^[A-Za-z0-9]{16,32}$",
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "skill": {
      -        "const": "make_ugc",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "input": {
      -        "oneOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "script",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "script": {
      -                "maxLength": 10000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "script"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "brief": {
      -                "maxLength": 5000,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "captions": {
      -                "default": true,
      -                "type": "boolean"
      -              },
      -              "character_details": {
      -                "maxLength": 400,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "character_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "duration_seconds": {
      -                "maximum": 90,
      -                "minimum": 30,
      -                "type": "number"
      -              },
      -              "input_mode": {
      -                "const": "brief",
      -                "type": "string"
      -              },
      -              "scene_images": {
      -                "items": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "anchor": {
      -                      "anyOf": [
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "endWord": {
      -                              "exclusiveMinimum": 0,
      -                              "maximum": 9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            "startWord": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            }
      -                          },
      -                          "required": [
      -                            "startWord",
      -                            "endWord"
      -                          ],
      -                          "type": "object"
      -                        },
      -                        {
      -                          "additionalProperties": false,
      -                          "properties": {
      -                            "occurrence": {
      -                              "maximum": 9007199254740991,
      -                              "minimum": 0,
      -                              "type": "integer"
      -                            },
      -                            "quote": {
      -                              "maxLength": 500,
      -                              "minLength": 1,
      -                              "type": "string"
      -                            }
      -                          },
      -                          "required": [
      -                            "quote"
      -                          ],
      -                          "type": "object"
      -                        }
      -                      ]
      -                    },
      -                    "image_url": {
      -                      "format": "starts_with",
      -                      "maxLength": 2048,
      -                      "pattern": "^https:\\/\\/.*",
      -                      "type": "string"
      -                    }
      -                  },
      -                  "required": [
      -                    "image_url",
      -                    "anchor"
      -                  ],
      -                  "type": "object"
      -                },
      -                "maxItems": 30,
      -                "type": "array"
      -              },
      -              "style_reference": {
      -                "format": "starts_with",
      -                "maxLength": 2048,
      -                "pattern": "^https:\\/\\/.*",
      -                "type": "string"
      -              },
      -              "voice": {
      -                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      -                "type": "string"
      -              },
      -              "voice_id": {
      -                "not": {}
      -              }
      -            },
      -            "required": [
      -              "duration_seconds",
      -              "input_mode",
      -              "brief"
      -            ],
      -            "type": "object"
      -          }
      -        ]
      -      },
      -      "skill": {
      -        "const": "make_faceless",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "skill",
      -      "input"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "actor_gender": {
      +            "description": "Gender of the face in image: female | male. Only with image: picks the default voice of that gender (female: sarah, male: george; on gemini-3.8-flash-tts: kore and charon). Refused with actor_id (its gender is known) and without image. An explicit voice or voice_id wins and the response warns that actor_gender changed nothing.",
      +            "enum": [
      +              "female",
      +              "male"
      +            ],
      +            "type": "string"
      +          },
      +          "actor_id": {
      +            "description": "Saved Clipwright actor ID from list_actors. Choose actor_id, image, or person; do not combine them. Without voice or voice_id the voice follows the actor's gender. Do not combine with actor_gender.",
      +            "pattern": "^actor_[a-z0-9][a-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "aspect_ratio": {
      +            "description": "Output format: 9:16 | 1:1 | 16:9. Omitted means 9:16, and a source of another shape is snapped to 9:16 with a warning — pass it explicitly whenever you pass image. A mismatch above 15% between the request and the source is refused (aspect_conflict) before any charge.",
      +            "enum": [
      +              "9:16",
      +              "1:1",
      +              "16:9"
      +            ],
      +            "type": "string"
      +          },
      +          "background": {
      +            "enum": [
      +              "white",
      +              "blur",
      +              "contain"
      +            ],
      +            "type": "string"
      +          },
      +          "broll_policy": {
      +            "description": "Saved policy for B-roll: anyone allows people including the actor; no_actor excludes the actor; no_people excludes all people, including hands. Segmented media generation is closed. This setting is stored only and has no effect on actor-only videos. Run override wins over the account actor default; otherwise no_people.",
      +            "enum": [
      +              "anyone",
      +              "no_actor",
      +              "no_people"
      +            ],
      +            "type": "string"
      +          },
      +          "caption_style": {
      +            "default": "hormozi",
      +            "enum": [
      +              "hormozi",
      +              "tiktok",
      +              "minimal"
      +            ],
      +            "type": "string"
      +          },
      +          "captions": {
      +            "default": false,
      +            "type": "boolean"
      +          },
      +          "image": {
      +            "description": "Public https url of the actor's photo (PNG, JPEG or WebP, up to 10 MB). A file on disk goes through upload_image (POST /v1/uploads) first — pass the url it returns. A source we cannot use — private or loopback host, http, unreachable, redirecting, over 10 MB, or not one of those image types — is refused (unusable_source) before any charge. We do not detect the face's gender: pass actor_gender or voice, or the default male voice is used with a warning.",
      +            "format": "starts_with",
      +            "maxLength": 2048,
      +            "pattern": "^https:\\/\\/.*",
      +            "type": "string"
      +          },
      +          "inserts": {
      +            "description": "Text-anchored image inserts over full narration, each covering cover_words spoken words from its anchor; requires long-form qualification on the server, captions=false, 1080p and explicit broll_policy=anyone.",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "anchor": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "endWord": {
      +                          "exclusiveMinimum": 0,
      +                          "maximum": 9007199254740991,
      +                          "type": "integer"
      +                        },
      +                        "startWord": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        }
      +                      },
      +                      "required": [
      +                        "startWord",
      +                        "endWord"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "additionalProperties": false,
      +                      "properties": {
      +                        "occurrence": {
      +                          "maximum": 9007199254740991,
      +                          "minimum": 0,
      +                          "type": "integer"
      +                        },
      +                        "quote": {
      +                          "maxLength": 10000,
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "quote"
      +                      ],
      +                      "type": "object"
      +                    }
      +                  ]
      +                },
      +                "cover_words": {
      +                  "description": "How many spoken words this insert covers, counted from the first word of its anchor. Omitted means the anchored words only. The insert ends where the first uncovered word begins, so inserts whose coverage meets are adjacent frame for frame and leave no actor shot between them.",
      +                  "exclusiveMinimum": 0,
      +                  "maximum": 10000,
      +                  "type": "integer"
      +                },
      +                "id": {
      +                  "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]{0,63}$",
      +                  "type": "string"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "media_type": {
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "format": "starts_with",
      +                  "maxLength": 2048,
      +                  "pattern": "^https:\\/\\/.*",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "id",
      +                "media_url",
      +                "media_type",
      +                "anchor"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 49,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "look": {
      +            "default": "natural",
      +            "enum": [
      +              "natural",
      +              "commercial",
      +              "raw_iphone"
      +            ],
      +            "type": "string"
      +          },
      +          "name": {
      +            "maxLength": 100,
      +            "type": "string"
      +          },
      +          "person": {
      +            "maxLength": 500,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "resolution": {
      +            "description": "Output resolution: 720p | 1080p | 4k (short side 720 / 1080 / 2160 px). Omitted means 1080p.",
      +            "enum": [
      +              "720p",
      +              "1080p",
      +              "4k"
      +            ],
      +            "type": "string"
      +          },
      +          "script": {
      +            "description": "The words the actor says; required unless segments supplies the spoken text. Segments and text-anchored inserts require long-form qualification on the server. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured. Russian stress: write the stressed vowel as a capital inside a lowercase word (\"потОм\", \"зАмок\") and eleven_v3, eleven_v4 and gemini-3.8-flash-tts receive it as the stress mark U+0301 (\"пото́м\"); a mark typed directly is kept. A capital at the start of a word stays a capital, and a word with a second capital or a capital consonant inside (all caps, \"ВУЗы\") is left as it is. A single capital vowel inside a word is always read as stress, so write \"Яндекс Еда\", not \"ЯндексЕда\". Tell users writing in Russian that they can mark stress this way. eleven_flash_v2_5 and eleven_turbo_v2_5 cost less but misread stress marks: capitals reach them unchanged.",
      +            "maxLength": 10000,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "segments": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "duration_seconds": {
      +                  "description": "Required for an image segment; its display duration in seconds. Not accepted for actor or video segments.",
      +                  "exclusiveMinimum": 0,
      +                  "type": "number"
      +                },
      +                "image_motion": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "amount": {
      +                      "exclusiveMaximum": 1,
      +                      "minimum": 0,
      +                      "type": "number"
      +                    },
      +                    "direction": {
      +                      "enum": [
      +                        "in",
      +                        "out"
      +                      ],
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "direction",
      +                    "amount"
      +                  ],
      +                  "type": "object"
      +                },
      +                "kind": {
      +                  "enum": [
      +                    "actor",
      +                    "media"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_type": {
      +                  "description": "Explicit media source type; omission means video, regardless of URL suffix. Availability follows the segments field.",
      +                  "enum": [
      +                    "image",
      +                    "video"
      +                  ],
      +                  "type": "string"
      +                },
      +                "media_url": {
      +                  "format": "uri",
      +                  "maxLength": 2048,
      +                  "type": "string"
      +                },
      +                "script": {
      +                  "maxLength": 10000,
      +                  "minLength": 1,
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "kind"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 5,
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "tts_model": {
      +            "description": "Speech model: eleven_v3 | eleven_flash_v2_5 | eleven_turbo_v2_5 | eleven_v4 | gemini-3.8-flash-tts. Omitted means the model of the chosen voice (list_voices shows it): eleven_v4 for the Russian presets and for catalog voices named ru_*, gemini-3.8-flash-tts for its own voices, eleven_v3 for every other preset and catalog voice. A raw voice_id speaks eleven_v4 when the script is mostly Cyrillic and eleven_v3 otherwise. An explicit tts_model always wins. eleven_v4, eleven_v3 and gemini-3.8-flash-tts read stress marks (a capital vowel inside a Russian word, \"потОм\", becomes one; see script); eleven_flash_v2_5 and eleven_turbo_v2_5 are cheaper alternatives for languages other than Russian. gemini-3.8-flash-tts speaks only its own voices (list_voices with model=gemini-3.8-flash-tts; without voice, kore for a female actor and charon otherwise) and returns no word timings: a preset or catalog voice, voice_id, captions=true, segments and inserts are refused with it before any charge. Audio tags in square brackets are an eleven_v3 and eleven_v4 convention and are not measured on it. Script limits by speech model: eleven_v3: 5000 characters; eleven_flash_v2_5: 10000 characters; eleven_turbo_v2_5: 10000 characters; eleven_v4: 5000 characters; gemini-3.8-flash-tts: 5000 characters. Count includes spaces, audio tags and stress marks; emoji may count as two characters. Break tags are cut from the text sent to eleven_v4 and gemini-3.8-flash-tts and are not counted there. There is no word-count limit. Duration and price are estimates until measured.",
      +            "enum": [
      +              "eleven_v3",
      +              "eleven_flash_v2_5",
      +              "eleven_turbo_v2_5",
      +              "eleven_v4",
      +              "gemini-3.8-flash-tts"
      +            ],
      +            "type": "string"
      +          },
      +          "visible_ai_label": {
      +            "description": "Visible AI label for newly marked presenter videos, including long form; defaults to true in the server admission policy. False hides only the visible label and does not disable invisible marking or signed provenance. Historical outputs are unchanged.",
      +            "type": "boolean"
      +          },
      +          "voice": {
      +            "description": "Voice name from list_voices. Curated presets: owner_ru_clone | sarah | george | eric | daria_ru_female (owner_ru_clone is the Russian cloned voice). The API refuses a name list_voices does not return, before any charge. Omitted means the default voice for the actor's gender: the gender of actor_id, actor_gender with image, or george for the default actor and for image without actor_gender. gemini-3.8-flash-tts speaks only its own voices (kind model_voice in list_voices, such as kore): naming one selects that model, and a voice is refused with a tts_model that does not speak it, before any charge. Mutually exclusive with voice_id.",
      +            "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +            "type": "string"
      +          },
      +          "voice_id": {
      +            "description": "Raw vendor voice id (16–32 letters and digits) for a voice outside the catalog. Checked lazily: an unknown id fails the run, not the request. Refused with tts_model=gemini-3.8-flash-tts. Mutually exclusive with voice.",
      +            "pattern": "^[A-Za-z0-9]{16,32}$",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "skill": {
      +        "const": "make_ugc",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "input": {
      +        "oneOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "script",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "script": {
      +                "maxLength": 10000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "script"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "brief": {
      +                "maxLength": 5000,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "captions": {
      +                "default": true,
      +                "type": "boolean"
      +              },
      +              "character_details": {
      +                "maxLength": 400,
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "character_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "duration_seconds": {
      +                "maximum": 90,
      +                "minimum": 30,
      +                "type": "number"
      +              },
      +              "input_mode": {
      +                "const": "brief",
      +                "type": "string"
      +              },
      +              "scene_images": {
      +                "items": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "anchor": {
      +                      "anyOf": [
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "endWord": {
      +                              "exclusiveMinimum": 0,
      +                              "maximum": 9007199254740991,
      +                              "type": "integer"
      +                            },
      +                            "startWord": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            }
      +                          },
      +                          "required": [
      +                            "startWord",
      +                            "endWord"
      +                          ],
      +                          "type": "object"
      +                        },
      +                        {
      +                          "additionalProperties": false,
      +                          "properties": {
      +                            "occurrence": {
      +                              "maximum": 9007199254740991,
      +                              "minimum": 0,
      +                              "type": "integer"
      +                            },
      +                            "quote": {
      +                              "maxLength": 500,
      +                              "minLength": 1,
      +                              "type": "string"
      +                            }
      +                          },
      +                          "required": [
      +                            "quote"
      +                          ],
      +                          "type": "object"
      +                        }
      +                      ]
      +                    },
      +                    "image_url": {
      +                      "format": "starts_with",
      +                      "maxLength": 2048,
      +                      "pattern": "^https:\\/\\/.*",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "image_url",
      +                    "anchor"
      +                  ],
      +                  "type": "object"
      +                },
      +                "maxItems": 30,
      +                "type": "array"
      +              },
      +              "style_reference": {
      +                "format": "starts_with",
      +                "maxLength": 2048,
      +                "pattern": "^https:\\/\\/.*",
      +                "type": "string"
      +              },
      +              "voice": {
      +                "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
      +                "type": "string"
      +              },
      +              "voice_id": {
      +                "not": {}
      +              }
      +            },
      +            "required": [
      +              "duration_seconds",
      +              "input_mode",
      +              "brief"
      +            ],
      +            "type": "object"
      +          }
      +        ]
      +      },
      +      "skill": {
      +        "const": "make_faceless",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "skill",
      +      "input"
      +    ],
      +    "type": "object"
      +  }
      +]
  7. Addedv0.29.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-read-only but non-destructive write, and the description adds real value on top: no charge, no run started, a hard 256000-byte strict-payload limit, and recovery guidance ('after a lost save answer, read the saved document'). What it omits is the concurrency behavior of base_version — whether a stale value rejects the save — which is the most consequential behavioral detail for a revision tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with cost and side-effect facts, then the create/revise rule, then constraints and recovery. Every clause carries information, though 'strict' and 'keep accepted narration exact' are compressed to the point of being hard to parse on first read.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool whose payload is a large, entirely undescribed nested document with method digests, version numbers, and evidence anchors, the description never says where the schema skeleton or digests come from (get_workflow_plan, quote_workflow_plan). There is no output schema, so the create/save response shape (returned plan_id, version) is also unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden, and it does explain the two optional control parameters (plan_id, base_version) in create-vs-revise terms plus the size ceiling. The 'document' body — a deeply nested object with dozens of undocumented fields, enums, and digests — gets only 'The complete document', which is far too thin for the largest parameter in the definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb/resource pair ('The complete document: omit plan_id and base_version to create, supply both to save a revision') and explicitly negates execution ('starts no run'), which separates it from run_workflow_plan. It does not name the read/approve siblings (get_workflow_plan, approve_workflow_plan) outright, so differentiation is implied rather than spelled out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The create-vs-revise condition is given unambiguously (omit both fields to create, supply both to save a revision), and 'never auto-approve or buy' steers the agent away from the approval/purchase siblings. It stops short of naming approve_workflow_plan or get_workflow_plan as the follow-up tools, leaving the alternative paths implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.