{
  "openapi": "3.1.0",
  "info": {
    "title": "InterviewPrompter API v2",
    "version": "2.0.0",
    "description": "Cloud content and command orchestration. Media stays on the recording browser. No remote capture or media download endpoint."
  },
  "servers": [
    {
      "url": "https://interviewprompter.app/api/v2"
    }
  ],
  "paths": {
    "/capabilities": {
      "get": {
        "operationId": "get_capabilities",
        "description": "Read supported hosts, authoring/export limits, enrolled browser presence and recording recipe. Capability availability is not proof of device codec support. capture.includeHostAudio affects the exported mix only. Both Live and Exact may call paid voice providers regardless of this flag. To avoid paid voice, choose Continue with text questions in the recording browser.",
        "security": [
          {
            "OAuth": [
              "projects:read"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_capabilities_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/projects": {
      "get": {
        "operationId": "list_projects",
        "description": "List owned project summaries, with bounded pagination. Full scripts are returned only by get_project. Use conversation context before asking for details.",
        "security": [
          {
            "OAuth": [
              "projects:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "interview",
                "script"
              ]
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/list_projects_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "save_project",
        "description": "Save interview questions or a teleprompter script authored in this conversation, without app AI preparation. Create or replace with expectedRevision. Reuse the same idempotency key only for identical retries. Does not start voice or recording.",
        "security": [
          {
            "OAuth": [
              "projects:write"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/save_project_output"
                }
              }
            }
          },
          "201": {
            "description": "Created resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/save_project_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "content": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "interview"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 180
                          },
                          "topic": {
                            "default": "",
                            "type": "string",
                            "maxLength": 5000
                          },
                          "audience": {
                            "default": "",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "targetMinutes": {
                            "default": 10,
                            "type": "number",
                            "minimum": 1,
                            "maximum": 60
                          },
                          "questions": {
                            "minItems": 1,
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "notes": {
                                  "default": "",
                                  "type": "string",
                                  "maxLength": 4000
                                },
                                "purpose": {
                                  "default": "",
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "estimatedAnswerSeconds": {
                                  "default": 90,
                                  "type": "integer",
                                  "minimum": 10,
                                  "maximum": 900
                                },
                                "followUpIds": {
                                  "default": [],
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "id",
                                "text"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "hostId": {
                            "default": "maya",
                            "type": "string",
                            "enum": [
                              "maya",
                              "leo"
                            ]
                          },
                          "deliveryMode": {
                            "default": "live",
                            "type": "string",
                            "enum": [
                              "live",
                              "exact"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "title",
                          "questions"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "script"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 180
                          },
                          "script": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100000
                          },
                          "prompter": {
                            "default": {
                              "wpm": 140,
                              "fontSize": 44,
                              "width": 55,
                              "lineHeight": 1.55,
                              "align": "left",
                              "anchor": 25,
                              "theme": "dark",
                              "mirror": false,
                              "countdown": 3
                            },
                            "type": "object",
                            "properties": {
                              "wpm": {
                                "default": 140,
                                "type": "number",
                                "minimum": 60,
                                "maximum": 240
                              },
                              "fontSize": {
                                "default": 44,
                                "type": "number",
                                "minimum": 24,
                                "maximum": 96
                              },
                              "width": {
                                "default": 55,
                                "type": "number",
                                "minimum": 35,
                                "maximum": 70
                              },
                              "lineHeight": {
                                "default": 1.55,
                                "type": "number",
                                "minimum": 1.3,
                                "maximum": 1.9
                              },
                              "align": {
                                "default": "left",
                                "type": "string",
                                "enum": [
                                  "left",
                                  "center"
                                ]
                              },
                              "anchor": {
                                "default": 25,
                                "type": "number",
                                "minimum": 10,
                                "maximum": 70
                              },
                              "theme": {
                                "default": "dark",
                                "type": "string",
                                "enum": [
                                  "dark",
                                  "light"
                                ]
                              },
                              "mirror": {
                                "default": false,
                                "type": "boolean"
                              },
                              "countdown": {
                                "default": 3,
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "const": 0
                                  },
                                  {
                                    "type": "number",
                                    "const": 3
                                  },
                                  {
                                    "type": "number",
                                    "const": 5
                                  },
                                  {
                                    "type": "number",
                                    "const": 10
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "kind",
                          "title",
                          "script"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "content",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/projects/{projectId}": {
      "get": {
        "operationId": "get_project",
        "description": "Read an owned project and exact content revision. Preserve approved author text and use the revision returned by the service.",
        "security": [
          {
            "OAuth": [
              "projects:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          },
          {
            "name": "revision",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_project_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "save_project_update",
        "description": "Save interview questions or a teleprompter script authored in this conversation, without app AI preparation. Create or replace with expectedRevision. Reuse the same idempotency key only for identical retries. Does not start voice or recording.",
        "security": [
          {
            "OAuth": [
              "projects:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/save_project_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "expectedRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "content": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "interview"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 180
                          },
                          "topic": {
                            "default": "",
                            "type": "string",
                            "maxLength": 5000
                          },
                          "audience": {
                            "default": "",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "targetMinutes": {
                            "default": 10,
                            "type": "number",
                            "minimum": 1,
                            "maximum": 60
                          },
                          "questions": {
                            "minItems": 1,
                            "maxItems": 20,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 100
                                },
                                "text": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 2000
                                },
                                "notes": {
                                  "default": "",
                                  "type": "string",
                                  "maxLength": 4000
                                },
                                "purpose": {
                                  "default": "",
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "estimatedAnswerSeconds": {
                                  "default": 90,
                                  "type": "integer",
                                  "minimum": 10,
                                  "maximum": 900
                                },
                                "followUpIds": {
                                  "default": [],
                                  "maxItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                }
                              },
                              "required": [
                                "id",
                                "text"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "hostId": {
                            "default": "maya",
                            "type": "string",
                            "enum": [
                              "maya",
                              "leo"
                            ]
                          },
                          "deliveryMode": {
                            "default": "live",
                            "type": "string",
                            "enum": [
                              "live",
                              "exact"
                            ]
                          }
                        },
                        "required": [
                          "kind",
                          "title",
                          "questions"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "script"
                          },
                          "title": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 180
                          },
                          "script": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100000
                          },
                          "prompter": {
                            "default": {
                              "wpm": 140,
                              "fontSize": 44,
                              "width": 55,
                              "lineHeight": 1.55,
                              "align": "left",
                              "anchor": 25,
                              "theme": "dark",
                              "mirror": false,
                              "countdown": 3
                            },
                            "type": "object",
                            "properties": {
                              "wpm": {
                                "default": 140,
                                "type": "number",
                                "minimum": 60,
                                "maximum": 240
                              },
                              "fontSize": {
                                "default": 44,
                                "type": "number",
                                "minimum": 24,
                                "maximum": 96
                              },
                              "width": {
                                "default": 55,
                                "type": "number",
                                "minimum": 35,
                                "maximum": 70
                              },
                              "lineHeight": {
                                "default": 1.55,
                                "type": "number",
                                "minimum": 1.3,
                                "maximum": 1.9
                              },
                              "align": {
                                "default": "left",
                                "type": "string",
                                "enum": [
                                  "left",
                                  "center"
                                ]
                              },
                              "anchor": {
                                "default": 25,
                                "type": "number",
                                "minimum": 10,
                                "maximum": 70
                              },
                              "theme": {
                                "default": "dark",
                                "type": "string",
                                "enum": [
                                  "dark",
                                  "light"
                                ]
                              },
                              "mirror": {
                                "default": false,
                                "type": "boolean"
                              },
                              "countdown": {
                                "default": 3,
                                "anyOf": [
                                  {
                                    "type": "number",
                                    "const": 0
                                  },
                                  {
                                    "type": "number",
                                    "const": 3
                                  },
                                  {
                                    "type": "number",
                                    "const": 5
                                  },
                                  {
                                    "type": "number",
                                    "const": 10
                                  }
                                ]
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "kind",
                          "title",
                          "script"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "expectedRevision",
                  "content",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/studio-sessions": {
      "post": {
        "operationId": "prepare_studio",
        "description": "Prepare an exact saved revision and return a clickable studioUrl. Show that link to the user. The signed-in user opens the studio and presses Record; tools cannot control camera or microphone. Saving and preparing make zero provider requests. capture.includeHostAudio affects the exported mix only. Both Live and Exact may call paid voice providers regardless of this flag. To avoid paid voice, choose Continue with text questions in the recording browser.",
        "security": [
          {
            "OAuth": [
              "studio:prepare"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prepare_studio_output"
                }
              }
            }
          },
          "201": {
            "description": "Created resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/prepare_studio_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/prepare_studio_input"
              }
            }
          }
        }
      }
    },
    "/studio-sessions/{sessionId}": {
      "get": {
        "operationId": "get_session",
        "description": "After the user returns from recording, read this exact studio session and its finalized take references. Presence timestamps can be stale. Do not continuously poll or guess the newest take.",
        "security": [
          {
            "OAuth": [
              "studio:prepare"
            ]
          }
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_session_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/takes": {
      "get": {
        "operationId": "list_takes",
        "description": "List only consented take metadata. Prefer the exact sessionId from this conversation. Takes and footage remain on their source browser; account sign-in does not move media.",
        "security": [
          {
            "OAuth": [
              "takes:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "sessionId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "deviceId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/list_takes_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/takes/{takeId}": {
      "get": {
        "operationId": "get_take",
        "description": "Read a consented finalized take, exact local source/package/draft/brand IDs and optional bounded timing markers. Suggestions describe timing, not semantic quality. Returns no video, transcript or download URL. Baked-watermark footage preserves the complete source frame in the protected brand layout; a vertical canvas may letterbox it even when fit is cover. Do not promise a fill crop; the browser review is authoritative.",
        "security": [
          {
            "OAuth": [
              "takes:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "takeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          },
          {
            "name": "includeMarkers",
            "in": "query",
            "required": false,
            "schema": {
              "default": false,
              "type": "boolean"
            }
          },
          {
            "name": "markerLimit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 100,
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_take_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/edit-proposals": {
      "post": {
        "operationId": "propose_edits",
        "description": "Propose strict edit-plan v1 contiguous source-time trims, order, titles, known local brands and framing for an exact draft revision. Structure validation does not apply edits or prove device validation. No captions, music, speed changes, external assets or watermark removal.",
        "security": [
          {
            "OAuth": [
              "edits:propose"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/propose_edits_output"
                }
              }
            }
          },
          "201": {
            "description": "Created resource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/propose_edits_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/propose_edits_input"
              }
            }
          }
        }
      }
    },
    "/exports": {
      "post": {
        "operationId": "request_export",
        "description": "Request source footage, selected clips or ZIP on the recording browser. Bind exact draft revision and proposal ID/digest when used. User reviews and presses Export and save. Same key retries are idempotent; a new key is a deliberate new request. No remote download URL.",
        "security": [
          {
            "OAuth": [
              "exports:request"
            ]
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/request_export_output"
                }
              }
            }
          },
          "202": {
            "description": "Export request accepted; browser review/save required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/request_export_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/request_export_input"
              }
            }
          }
        }
      }
    },
    "/jobs/{jobId}": {
      "get": {
        "operationId": "get_job",
        "description": "Read export progress and required nextAction. Report saved only for completed_native_write after writable close. For download_started say Download started; check your browser. ready_local is not delivery. Check on user request rather than endlessly polling.",
        "security": [
          {
            "OAuth": [
              "exports:request"
            ]
          }
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/get_job_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        }
      }
    },
    "/jobs/{jobId}/cancel": {
      "post": {
        "operationId": "cancel_job",
        "description": "Request cancellation of unfinished export work, or return the actual terminal result. Preserves originals and completed files; never stops recording or deletes footage. Cancellation may race a completed save.",
        "security": [
          {
            "OAuth": [
              "exports:request"
            ]
          }
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]+$",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful result or idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cancel_job_output"
                }
              }
            }
          },
          "401": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "403": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "404": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "409": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "422": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "429": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          },
          "500": {
            "description": "Actionable API error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiError"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "idempotencyKey"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "get_capabilities_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "additionalProperties": false
      },
      "get_capabilities_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string",
            "const": "2"
          },
          "schemaVersions": {
            "type": "object",
            "properties": {
              "editPlan": {
                "type": "string",
                "const": "interviewprompter.edit-plan.v1"
              },
              "manifest": {
                "type": "string",
                "const": "interviewprompter.manifest.v1"
              }
            },
            "required": [
              "editPlan",
              "manifest"
            ],
            "additionalProperties": false
          },
          "hosts": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "maya",
                "leo"
              ]
            }
          },
          "deliveryModes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "live",
                "exact"
              ]
            }
          },
          "limits": {
            "type": "object",
            "properties": {
              "questions": {
                "type": "number",
                "const": 20
              },
              "questionCharacters": {
                "type": "number",
                "const": 2000
              },
              "scriptCharacters": {
                "type": "number",
                "const": 100000
              },
              "prompterMinWpm": {
                "type": "number",
                "const": 60
              },
              "prompterMaxWpm": {
                "type": "number",
                "const": 240
              },
              "experimentalTestedCaptureMinutes": {
                "type": "number",
                "const": 20
              },
              "clips": {
                "type": "number",
                "const": 20
              },
              "editPlanBytes": {
                "type": "number",
                "const": 1048576
              },
              "manifestBytes": {
                "type": "number",
                "const": 5242880
              },
              "launchHours": {
                "type": "number",
                "const": 24
              },
              "idempotencyDays": {
                "type": "number",
                "const": 7
              }
            },
            "required": [
              "questions",
              "questionCharacters",
              "scriptCharacters",
              "prompterMinWpm",
              "prompterMaxWpm",
              "experimentalTestedCaptureMinutes",
              "clips",
              "editPlanBytes",
              "manifestBytes",
              "launchHours",
              "idempotencyDays"
            ],
            "additionalProperties": false
          },
          "exports": {
            "type": "object",
            "properties": {
              "outputs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "source",
                    "clips",
                    "zip"
                  ]
                }
              },
              "formats": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "auto",
                    "mp4",
                    "webm"
                  ]
                }
              },
              "resolutions": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "number",
                      "const": 720
                    },
                    {
                      "type": "number",
                      "const": 1080
                    }
                  ]
                }
              },
              "mediaLocation": {
                "type": "string",
                "const": "recording_device"
              },
              "requiresOpenBrowser": {
                "type": "boolean",
                "const": true
              },
              "requiresUserAction": {
                "type": "boolean",
                "const": true
              },
              "nativeDelivery": {
                "type": "string",
                "const": "writable_close"
              },
              "fallbackDelivery": {
                "type": "string",
                "const": "download_started"
              }
            },
            "required": [
              "outputs",
              "formats",
              "resolutions",
              "mediaLocation",
              "requiresOpenBrowser",
              "requiresUserAction",
              "nativeDelivery",
              "fallbackDelivery"
            ],
            "additionalProperties": false
          },
          "devices": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "label": {
                  "type": "string",
                  "maxLength": 80
                },
                "lastSeenAt": {
                  "type": "string"
                },
                "enrolled": {
                  "type": "boolean"
                },
                "capabilities": {
                  "type": "object",
                  "properties": {
                    "nativeSave": {
                      "type": "boolean"
                    },
                    "clips": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "nativeSave",
                    "clips"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "id",
                "label",
                "lastSeenAt",
                "enrolled",
                "capabilities"
              ],
              "additionalProperties": false
            }
          },
          "voiceAllowance": {
            "type": "object",
            "properties": {
              "minutes": {
                "type": "number",
                "minimum": 0
              },
              "policy": {
                "type": "string",
                "maxLength": 500
              }
            },
            "required": [
              "minutes",
              "policy"
            ],
            "additionalProperties": false
          },
          "authoringRecipe": {
            "type": "string",
            "maxLength": 4000
          }
        },
        "required": [
          "apiVersion",
          "schemaVersions",
          "hosts",
          "deliveryModes",
          "limits",
          "exports",
          "devices",
          "voiceAllowance",
          "authoringRecipe"
        ],
        "additionalProperties": false
      },
      "list_projects_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "interview",
              "script"
            ]
          },
          "query": {
            "type": "string",
            "maxLength": 100
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          }
        },
        "additionalProperties": false
      },
      "list_projects_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "projects": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "interview",
                    "script"
                  ]
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 180
                },
                "revision": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "kind",
                "title",
                "revision",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "projects",
          "nextCursor"
        ],
        "additionalProperties": false
      },
      "get_project_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "projectId"
        ],
        "additionalProperties": false
      },
      "get_project_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "topic": {
                "default": "",
                "type": "string",
                "maxLength": 5000
              },
              "audience": {
                "default": "",
                "type": "string",
                "maxLength": 2000
              },
              "targetMinutes": {
                "default": 10,
                "type": "number",
                "minimum": 1,
                "maximum": 60
              },
              "questions": {
                "default": [],
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 4000
                    },
                    "purpose": {
                      "default": "",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "estimatedAnswerSeconds": {
                      "default": 90,
                      "type": "integer",
                      "minimum": 10,
                      "maximum": 900
                    },
                    "followUpIds": {
                      "default": [],
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "notes",
                    "purpose",
                    "estimatedAnswerSeconds",
                    "followUpIds"
                  ],
                  "additionalProperties": false
                }
              },
              "script": {
                "default": "",
                "type": "string",
                "maxLength": 100000
              },
              "hostId": {
                "default": "maya",
                "type": "string",
                "enum": [
                  "maya",
                  "leo"
                ]
              },
              "deliveryMode": {
                "default": "live",
                "type": "string",
                "enum": [
                  "live",
                  "exact"
                ]
              },
              "prompter": {
                "default": {
                  "wpm": 140,
                  "fontSize": 44,
                  "width": 55,
                  "lineHeight": 1.55,
                  "align": "left",
                  "anchor": 25,
                  "theme": "dark",
                  "mirror": false,
                  "countdown": 3
                },
                "type": "object",
                "properties": {
                  "wpm": {
                    "default": 140,
                    "type": "number",
                    "minimum": 60,
                    "maximum": 240
                  },
                  "fontSize": {
                    "default": 44,
                    "type": "number",
                    "minimum": 24,
                    "maximum": 96
                  },
                  "width": {
                    "default": 55,
                    "type": "number",
                    "minimum": 35,
                    "maximum": 70
                  },
                  "lineHeight": {
                    "default": 1.55,
                    "type": "number",
                    "minimum": 1.3,
                    "maximum": 1.9
                  },
                  "align": {
                    "default": "left",
                    "type": "string",
                    "enum": [
                      "left",
                      "center"
                    ]
                  },
                  "anchor": {
                    "default": 25,
                    "type": "number",
                    "minimum": 10,
                    "maximum": 70
                  },
                  "theme": {
                    "default": "dark",
                    "type": "string",
                    "enum": [
                      "dark",
                      "light"
                    ]
                  },
                  "mirror": {
                    "default": false,
                    "type": "boolean"
                  },
                  "countdown": {
                    "default": 3,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 0
                      },
                      {
                        "type": "number",
                        "const": 3
                      },
                      {
                        "type": "number",
                        "const": 5
                      },
                      {
                        "type": "number",
                        "const": 10
                      }
                    ]
                  }
                },
                "required": [
                  "wpm",
                  "fontSize",
                  "width",
                  "lineHeight",
                  "align",
                  "anchor",
                  "theme",
                  "mirror",
                  "countdown"
                ],
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "interview",
                  "script"
                ]
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvedRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvalHash": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "topic",
              "audience",
              "targetMinutes",
              "questions",
              "script",
              "hostId",
              "deliveryMode",
              "prompter",
              "id",
              "kind",
              "revision",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "contentDigest": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "required": [
          "project",
          "contentDigest"
        ],
        "additionalProperties": false
      },
      "save_project_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "operation": {
                "type": "string",
                "const": "create"
              },
              "content": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "interview"
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 180
                      },
                      "topic": {
                        "default": "",
                        "type": "string",
                        "maxLength": 5000
                      },
                      "audience": {
                        "default": "",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "targetMinutes": {
                        "default": 10,
                        "type": "number",
                        "minimum": 1,
                        "maximum": 60
                      },
                      "questions": {
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            },
                            "text": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "notes": {
                              "default": "",
                              "type": "string",
                              "maxLength": 4000
                            },
                            "purpose": {
                              "default": "",
                              "type": "string",
                              "maxLength": 1000
                            },
                            "estimatedAnswerSeconds": {
                              "default": 90,
                              "type": "integer",
                              "minimum": 10,
                              "maximum": 900
                            },
                            "followUpIds": {
                              "default": [],
                              "maxItems": 2,
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "id",
                            "text"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "hostId": {
                        "default": "maya",
                        "type": "string",
                        "enum": [
                          "maya",
                          "leo"
                        ]
                      },
                      "deliveryMode": {
                        "default": "live",
                        "type": "string",
                        "enum": [
                          "live",
                          "exact"
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "title",
                      "questions"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "script"
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 180
                      },
                      "script": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100000
                      },
                      "prompter": {
                        "default": {
                          "wpm": 140,
                          "fontSize": 44,
                          "width": 55,
                          "lineHeight": 1.55,
                          "align": "left",
                          "anchor": 25,
                          "theme": "dark",
                          "mirror": false,
                          "countdown": 3
                        },
                        "type": "object",
                        "properties": {
                          "wpm": {
                            "default": 140,
                            "type": "number",
                            "minimum": 60,
                            "maximum": 240
                          },
                          "fontSize": {
                            "default": 44,
                            "type": "number",
                            "minimum": 24,
                            "maximum": 96
                          },
                          "width": {
                            "default": 55,
                            "type": "number",
                            "minimum": 35,
                            "maximum": 70
                          },
                          "lineHeight": {
                            "default": 1.55,
                            "type": "number",
                            "minimum": 1.3,
                            "maximum": 1.9
                          },
                          "align": {
                            "default": "left",
                            "type": "string",
                            "enum": [
                              "left",
                              "center"
                            ]
                          },
                          "anchor": {
                            "default": 25,
                            "type": "number",
                            "minimum": 10,
                            "maximum": 70
                          },
                          "theme": {
                            "default": "dark",
                            "type": "string",
                            "enum": [
                              "dark",
                              "light"
                            ]
                          },
                          "mirror": {
                            "default": false,
                            "type": "boolean"
                          },
                          "countdown": {
                            "default": 3,
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 0
                              },
                              {
                                "type": "number",
                                "const": 3
                              },
                              {
                                "type": "number",
                                "const": 5
                              },
                              {
                                "type": "number",
                                "const": 10
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "kind",
                      "title",
                      "script"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "idempotencyKey": {
                "type": "string",
                "minLength": 8,
                "maxLength": 128,
                "pattern": "^[A-Za-z0-9_-]+$"
              }
            },
            "required": [
              "operation",
              "content",
              "idempotencyKey"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "operation": {
                "type": "string",
                "const": "update"
              },
              "projectId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "expectedRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "content": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "interview"
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 180
                      },
                      "topic": {
                        "default": "",
                        "type": "string",
                        "maxLength": 5000
                      },
                      "audience": {
                        "default": "",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "targetMinutes": {
                        "default": 10,
                        "type": "number",
                        "minimum": 1,
                        "maximum": 60
                      },
                      "questions": {
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            },
                            "text": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 2000
                            },
                            "notes": {
                              "default": "",
                              "type": "string",
                              "maxLength": 4000
                            },
                            "purpose": {
                              "default": "",
                              "type": "string",
                              "maxLength": 1000
                            },
                            "estimatedAnswerSeconds": {
                              "default": 90,
                              "type": "integer",
                              "minimum": 10,
                              "maximum": 900
                            },
                            "followUpIds": {
                              "default": [],
                              "maxItems": 2,
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            }
                          },
                          "required": [
                            "id",
                            "text"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "hostId": {
                        "default": "maya",
                        "type": "string",
                        "enum": [
                          "maya",
                          "leo"
                        ]
                      },
                      "deliveryMode": {
                        "default": "live",
                        "type": "string",
                        "enum": [
                          "live",
                          "exact"
                        ]
                      }
                    },
                    "required": [
                      "kind",
                      "title",
                      "questions"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "script"
                      },
                      "title": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 180
                      },
                      "script": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100000
                      },
                      "prompter": {
                        "default": {
                          "wpm": 140,
                          "fontSize": 44,
                          "width": 55,
                          "lineHeight": 1.55,
                          "align": "left",
                          "anchor": 25,
                          "theme": "dark",
                          "mirror": false,
                          "countdown": 3
                        },
                        "type": "object",
                        "properties": {
                          "wpm": {
                            "default": 140,
                            "type": "number",
                            "minimum": 60,
                            "maximum": 240
                          },
                          "fontSize": {
                            "default": 44,
                            "type": "number",
                            "minimum": 24,
                            "maximum": 96
                          },
                          "width": {
                            "default": 55,
                            "type": "number",
                            "minimum": 35,
                            "maximum": 70
                          },
                          "lineHeight": {
                            "default": 1.55,
                            "type": "number",
                            "minimum": 1.3,
                            "maximum": 1.9
                          },
                          "align": {
                            "default": "left",
                            "type": "string",
                            "enum": [
                              "left",
                              "center"
                            ]
                          },
                          "anchor": {
                            "default": 25,
                            "type": "number",
                            "minimum": 10,
                            "maximum": 70
                          },
                          "theme": {
                            "default": "dark",
                            "type": "string",
                            "enum": [
                              "dark",
                              "light"
                            ]
                          },
                          "mirror": {
                            "default": false,
                            "type": "boolean"
                          },
                          "countdown": {
                            "default": 3,
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 0
                              },
                              {
                                "type": "number",
                                "const": 3
                              },
                              {
                                "type": "number",
                                "const": 5
                              },
                              {
                                "type": "number",
                                "const": 10
                              }
                            ]
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "kind",
                      "title",
                      "script"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "idempotencyKey": {
                "type": "string",
                "minLength": 8,
                "maxLength": 128,
                "pattern": "^[A-Za-z0-9_-]+$"
              }
            },
            "required": [
              "operation",
              "projectId",
              "expectedRevision",
              "content",
              "idempotencyKey"
            ],
            "additionalProperties": false
          }
        ]
      },
      "save_project_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "topic": {
                "default": "",
                "type": "string",
                "maxLength": 5000
              },
              "audience": {
                "default": "",
                "type": "string",
                "maxLength": 2000
              },
              "targetMinutes": {
                "default": 10,
                "type": "number",
                "minimum": 1,
                "maximum": 60
              },
              "questions": {
                "default": [],
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 4000
                    },
                    "purpose": {
                      "default": "",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "estimatedAnswerSeconds": {
                      "default": 90,
                      "type": "integer",
                      "minimum": 10,
                      "maximum": 900
                    },
                    "followUpIds": {
                      "default": [],
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "notes",
                    "purpose",
                    "estimatedAnswerSeconds",
                    "followUpIds"
                  ],
                  "additionalProperties": false
                }
              },
              "script": {
                "default": "",
                "type": "string",
                "maxLength": 100000
              },
              "hostId": {
                "default": "maya",
                "type": "string",
                "enum": [
                  "maya",
                  "leo"
                ]
              },
              "deliveryMode": {
                "default": "live",
                "type": "string",
                "enum": [
                  "live",
                  "exact"
                ]
              },
              "prompter": {
                "default": {
                  "wpm": 140,
                  "fontSize": 44,
                  "width": 55,
                  "lineHeight": 1.55,
                  "align": "left",
                  "anchor": 25,
                  "theme": "dark",
                  "mirror": false,
                  "countdown": 3
                },
                "type": "object",
                "properties": {
                  "wpm": {
                    "default": 140,
                    "type": "number",
                    "minimum": 60,
                    "maximum": 240
                  },
                  "fontSize": {
                    "default": 44,
                    "type": "number",
                    "minimum": 24,
                    "maximum": 96
                  },
                  "width": {
                    "default": 55,
                    "type": "number",
                    "minimum": 35,
                    "maximum": 70
                  },
                  "lineHeight": {
                    "default": 1.55,
                    "type": "number",
                    "minimum": 1.3,
                    "maximum": 1.9
                  },
                  "align": {
                    "default": "left",
                    "type": "string",
                    "enum": [
                      "left",
                      "center"
                    ]
                  },
                  "anchor": {
                    "default": 25,
                    "type": "number",
                    "minimum": 10,
                    "maximum": 70
                  },
                  "theme": {
                    "default": "dark",
                    "type": "string",
                    "enum": [
                      "dark",
                      "light"
                    ]
                  },
                  "mirror": {
                    "default": false,
                    "type": "boolean"
                  },
                  "countdown": {
                    "default": 3,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 0
                      },
                      {
                        "type": "number",
                        "const": 3
                      },
                      {
                        "type": "number",
                        "const": 5
                      },
                      {
                        "type": "number",
                        "const": 10
                      }
                    ]
                  }
                },
                "required": [
                  "wpm",
                  "fontSize",
                  "width",
                  "lineHeight",
                  "align",
                  "anchor",
                  "theme",
                  "mirror",
                  "countdown"
                ],
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "interview",
                  "script"
                ]
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvedRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvalHash": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "topic",
              "audience",
              "targetMinutes",
              "questions",
              "script",
              "hostId",
              "deliveryMode",
              "prompter",
              "id",
              "kind",
              "revision",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "contentDigest": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "required": [
          "project",
          "contentDigest"
        ],
        "additionalProperties": false
      },
      "prepare_studio_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "capture": {
            "default": {
              "aspectRatio": "9:16",
              "includeHostAudio": false
            },
            "type": "object",
            "properties": {
              "aspectRatio": {
                "default": "9:16",
                "type": "string",
                "enum": [
                  "9:16",
                  "16:9"
                ]
              },
              "includeHostAudio": {
                "default": false,
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "previousSessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "projectId",
          "revision",
          "idempotencyKey"
        ],
        "additionalProperties": false
      },
      "prepare_studio_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string",
            "const": "2"
          },
          "session": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "contentDigest": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "capture": {
                "type": "object",
                "properties": {
                  "aspectRatio": {
                    "default": "9:16",
                    "type": "string",
                    "enum": [
                      "9:16",
                      "16:9"
                    ]
                  },
                  "includeHostAudio": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "aspectRatio",
                  "includeHostAudio"
                ],
                "additionalProperties": false
              },
              "state": {
                "type": "string",
                "enum": [
                  "prepared",
                  "enrolled",
                  "recording",
                  "ready",
                  "detached"
                ]
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "createdAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "takeIds": {
                "maxItems": 100,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "supersededBy": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              }
            },
            "required": [
              "id",
              "projectId",
              "projectRevision",
              "contentDigest",
              "capture",
              "state",
              "createdAt",
              "expiresAt",
              "takeIds"
            ],
            "additionalProperties": false
          },
          "project": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "topic": {
                "default": "",
                "type": "string",
                "maxLength": 5000
              },
              "audience": {
                "default": "",
                "type": "string",
                "maxLength": 2000
              },
              "targetMinutes": {
                "default": 10,
                "type": "number",
                "minimum": 1,
                "maximum": 60
              },
              "questions": {
                "default": [],
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 4000
                    },
                    "purpose": {
                      "default": "",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "estimatedAnswerSeconds": {
                      "default": 90,
                      "type": "integer",
                      "minimum": 10,
                      "maximum": 900
                    },
                    "followUpIds": {
                      "default": [],
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "notes",
                    "purpose",
                    "estimatedAnswerSeconds",
                    "followUpIds"
                  ],
                  "additionalProperties": false
                }
              },
              "script": {
                "default": "",
                "type": "string",
                "maxLength": 100000
              },
              "hostId": {
                "default": "maya",
                "type": "string",
                "enum": [
                  "maya",
                  "leo"
                ]
              },
              "deliveryMode": {
                "default": "live",
                "type": "string",
                "enum": [
                  "live",
                  "exact"
                ]
              },
              "prompter": {
                "default": {
                  "wpm": 140,
                  "fontSize": 44,
                  "width": 55,
                  "lineHeight": 1.55,
                  "align": "left",
                  "anchor": 25,
                  "theme": "dark",
                  "mirror": false,
                  "countdown": 3
                },
                "type": "object",
                "properties": {
                  "wpm": {
                    "default": 140,
                    "type": "number",
                    "minimum": 60,
                    "maximum": 240
                  },
                  "fontSize": {
                    "default": 44,
                    "type": "number",
                    "minimum": 24,
                    "maximum": 96
                  },
                  "width": {
                    "default": 55,
                    "type": "number",
                    "minimum": 35,
                    "maximum": 70
                  },
                  "lineHeight": {
                    "default": 1.55,
                    "type": "number",
                    "minimum": 1.3,
                    "maximum": 1.9
                  },
                  "align": {
                    "default": "left",
                    "type": "string",
                    "enum": [
                      "left",
                      "center"
                    ]
                  },
                  "anchor": {
                    "default": 25,
                    "type": "number",
                    "minimum": 10,
                    "maximum": 70
                  },
                  "theme": {
                    "default": "dark",
                    "type": "string",
                    "enum": [
                      "dark",
                      "light"
                    ]
                  },
                  "mirror": {
                    "default": false,
                    "type": "boolean"
                  },
                  "countdown": {
                    "default": 3,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 0
                      },
                      {
                        "type": "number",
                        "const": 3
                      },
                      {
                        "type": "number",
                        "const": 5
                      },
                      {
                        "type": "number",
                        "const": 10
                      }
                    ]
                  }
                },
                "required": [
                  "wpm",
                  "fontSize",
                  "width",
                  "lineHeight",
                  "align",
                  "anchor",
                  "theme",
                  "mirror",
                  "countdown"
                ],
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "interview",
                  "script"
                ]
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvedRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvalHash": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "topic",
              "audience",
              "targetMinutes",
              "questions",
              "script",
              "hostId",
              "deliveryMode",
              "prompter",
              "id",
              "kind",
              "revision",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "device": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "lastSeenAt": {
                    "type": "string"
                  },
                  "enrolled": {
                    "type": "boolean"
                  },
                  "capabilities": {
                    "type": "object",
                    "properties": {
                      "nativeSave": {
                        "type": "boolean"
                      },
                      "clips": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "nativeSave",
                      "clips"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "label",
                  "lastSeenAt",
                  "enrolled",
                  "capabilities"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "studioUrl": {
            "type": "string",
            "format": "uri"
          },
          "nextAction": {
            "type": "object",
            "properties": {
              "actor": {
                "type": "string",
                "enum": [
                  "user",
                  "assistant",
                  "device"
                ]
              },
              "type": {
                "type": "string",
                "maxLength": 80
              },
              "label": {
                "type": "string",
                "maxLength": 240
              },
              "reason": {
                "type": "string",
                "maxLength": 500
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "actor",
              "type",
              "label"
            ],
            "additionalProperties": false
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "projectRevision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "state": {
            "type": "string",
            "enum": [
              "prepared",
              "enrolled",
              "recording",
              "ready",
              "detached"
            ]
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "apiVersion",
          "session",
          "project",
          "device",
          "studioUrl",
          "nextAction",
          "sessionId",
          "projectId",
          "projectRevision",
          "state",
          "expiresAt"
        ],
        "additionalProperties": false
      },
      "get_session_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "sessionId"
        ],
        "additionalProperties": false
      },
      "get_session_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "apiVersion": {
            "type": "string",
            "const": "2"
          },
          "session": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "contentDigest": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "capture": {
                "type": "object",
                "properties": {
                  "aspectRatio": {
                    "default": "9:16",
                    "type": "string",
                    "enum": [
                      "9:16",
                      "16:9"
                    ]
                  },
                  "includeHostAudio": {
                    "default": false,
                    "type": "boolean"
                  }
                },
                "required": [
                  "aspectRatio",
                  "includeHostAudio"
                ],
                "additionalProperties": false
              },
              "state": {
                "type": "string",
                "enum": [
                  "prepared",
                  "enrolled",
                  "recording",
                  "ready",
                  "detached"
                ]
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "createdAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "takeIds": {
                "maxItems": 100,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                }
              },
              "supersededBy": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              }
            },
            "required": [
              "id",
              "projectId",
              "projectRevision",
              "contentDigest",
              "capture",
              "state",
              "createdAt",
              "expiresAt",
              "takeIds"
            ],
            "additionalProperties": false
          },
          "project": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 180
              },
              "topic": {
                "default": "",
                "type": "string",
                "maxLength": 5000
              },
              "audience": {
                "default": "",
                "type": "string",
                "maxLength": 2000
              },
              "targetMinutes": {
                "default": 10,
                "type": "number",
                "minimum": 1,
                "maximum": 60
              },
              "questions": {
                "default": [],
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 4000
                    },
                    "purpose": {
                      "default": "",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "estimatedAnswerSeconds": {
                      "default": 90,
                      "type": "integer",
                      "minimum": 10,
                      "maximum": 900
                    },
                    "followUpIds": {
                      "default": [],
                      "maxItems": 2,
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "id",
                    "text",
                    "notes",
                    "purpose",
                    "estimatedAnswerSeconds",
                    "followUpIds"
                  ],
                  "additionalProperties": false
                }
              },
              "script": {
                "default": "",
                "type": "string",
                "maxLength": 100000
              },
              "hostId": {
                "default": "maya",
                "type": "string",
                "enum": [
                  "maya",
                  "leo"
                ]
              },
              "deliveryMode": {
                "default": "live",
                "type": "string",
                "enum": [
                  "live",
                  "exact"
                ]
              },
              "prompter": {
                "default": {
                  "wpm": 140,
                  "fontSize": 44,
                  "width": 55,
                  "lineHeight": 1.55,
                  "align": "left",
                  "anchor": 25,
                  "theme": "dark",
                  "mirror": false,
                  "countdown": 3
                },
                "type": "object",
                "properties": {
                  "wpm": {
                    "default": 140,
                    "type": "number",
                    "minimum": 60,
                    "maximum": 240
                  },
                  "fontSize": {
                    "default": 44,
                    "type": "number",
                    "minimum": 24,
                    "maximum": 96
                  },
                  "width": {
                    "default": 55,
                    "type": "number",
                    "minimum": 35,
                    "maximum": 70
                  },
                  "lineHeight": {
                    "default": 1.55,
                    "type": "number",
                    "minimum": 1.3,
                    "maximum": 1.9
                  },
                  "align": {
                    "default": "left",
                    "type": "string",
                    "enum": [
                      "left",
                      "center"
                    ]
                  },
                  "anchor": {
                    "default": 25,
                    "type": "number",
                    "minimum": 10,
                    "maximum": 70
                  },
                  "theme": {
                    "default": "dark",
                    "type": "string",
                    "enum": [
                      "dark",
                      "light"
                    ]
                  },
                  "mirror": {
                    "default": false,
                    "type": "boolean"
                  },
                  "countdown": {
                    "default": 3,
                    "anyOf": [
                      {
                        "type": "number",
                        "const": 0
                      },
                      {
                        "type": "number",
                        "const": 3
                      },
                      {
                        "type": "number",
                        "const": 5
                      },
                      {
                        "type": "number",
                        "const": 10
                      }
                    ]
                  }
                },
                "required": [
                  "wpm",
                  "fontSize",
                  "width",
                  "lineHeight",
                  "align",
                  "anchor",
                  "theme",
                  "mirror",
                  "countdown"
                ],
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "interview",
                  "script"
                ]
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvedRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "approvalHash": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "topic",
              "audience",
              "targetMinutes",
              "questions",
              "script",
              "hostId",
              "deliveryMode",
              "prompter",
              "id",
              "kind",
              "revision",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "device": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "lastSeenAt": {
                    "type": "string"
                  },
                  "enrolled": {
                    "type": "boolean"
                  },
                  "capabilities": {
                    "type": "object",
                    "properties": {
                      "nativeSave": {
                        "type": "boolean"
                      },
                      "clips": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "nativeSave",
                      "clips"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "id",
                  "label",
                  "lastSeenAt",
                  "enrolled",
                  "capabilities"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "studioUrl": {
            "type": "string",
            "format": "uri"
          },
          "nextAction": {
            "type": "object",
            "properties": {
              "actor": {
                "type": "string",
                "enum": [
                  "user",
                  "assistant",
                  "device"
                ]
              },
              "type": {
                "type": "string",
                "maxLength": 80
              },
              "label": {
                "type": "string",
                "maxLength": 240
              },
              "reason": {
                "type": "string",
                "maxLength": 500
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "actor",
              "type",
              "label"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "apiVersion",
          "session",
          "project",
          "device",
          "studioUrl",
          "nextAction"
        ],
        "additionalProperties": false
      },
      "list_takes_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "deviceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "limit": {
            "default": 20,
            "type": "integer",
            "minimum": 1,
            "maximum": 50
          }
        },
        "additionalProperties": false
      },
      "list_takes_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "takes": {
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sessionId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "deviceId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "projectId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "projectRevision": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "state": {
                  "type": "string",
                  "const": "ready"
                },
                "title": {
                  "type": "string",
                  "maxLength": 180
                },
                "durationMs": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "mimeType": {
                  "type": "string",
                  "enum": [
                    "video/mp4",
                    "video/webm"
                  ]
                },
                "width": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 16384
                },
                "height": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 16384
                },
                "sourceId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "sourceSha256": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                },
                "sourceByteLength": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "draftId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "draftRevision": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "packageId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "brands": {
                  "minItems": 1,
                  "maxItems": 20,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100,
                        "pattern": "^[A-Za-z0-9_-]+$"
                      },
                      "name": {
                        "type": "string",
                        "maxLength": 180
                      },
                      "preset": {
                        "type": "string",
                        "enum": [
                          "clean",
                          "nameplate",
                          "headline",
                          "frame"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "preset"
                    ],
                    "additionalProperties": false
                  }
                },
                "markers": {
                  "maxItems": 200,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "question",
                          "bookmark",
                          "host-start",
                          "host-end",
                          "answer-start",
                          "answer-end"
                        ]
                      },
                      "atMs": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "label": {
                        "type": "string",
                        "maxLength": 180
                      },
                      "provenance": {
                        "type": "string",
                        "enum": [
                          "observed",
                          "suggested"
                        ]
                      }
                    },
                    "required": [
                      "type",
                      "atMs",
                      "label",
                      "provenance"
                    ],
                    "additionalProperties": false
                  }
                },
                "suggestedPlan": {
                  "type": "object",
                  "properties": {
                    "schemaVersion": {
                      "type": "string",
                      "const": "interviewprompter.edit-plan.v1"
                    },
                    "packageId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    },
                    "clips": {
                      "minItems": 1,
                      "maxItems": 20,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "clipId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100,
                            "pattern": "^[a-zA-Z0-9_-]+$"
                          },
                          "sourceId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100,
                            "pattern": "^[a-zA-Z0-9_-]+$"
                          },
                          "sourceSha256": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "startMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "endMs": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "title": {
                            "type": "string",
                            "maxLength": 180
                          },
                          "order": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 19
                          },
                          "brandId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100,
                            "pattern": "^[a-zA-Z0-9_-]+$"
                          },
                          "aspectRatio": {
                            "type": "string",
                            "enum": [
                              "9:16",
                              "16:9",
                              "1:1"
                            ]
                          },
                          "fit": {
                            "type": "string",
                            "enum": [
                              "contain",
                              "cover"
                            ]
                          },
                          "framingX": {
                            "type": "number",
                            "minimum": -1,
                            "maximum": 1
                          },
                          "framingY": {
                            "type": "number",
                            "minimum": -1,
                            "maximum": 1
                          }
                        },
                        "required": [
                          "clipId",
                          "sourceId",
                          "sourceSha256",
                          "startMs",
                          "endMs",
                          "title",
                          "order",
                          "brandId",
                          "aspectRatio",
                          "fit",
                          "framingX",
                          "framingY"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "schemaVersion",
                    "packageId",
                    "clips"
                  ],
                  "additionalProperties": false
                },
                "consent": {
                  "type": "boolean",
                  "const": true
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[A-Za-z0-9_-]+$"
                },
                "lastReportedAt": {
                  "type": "string"
                }
              },
              "required": [
                "sessionId",
                "deviceId",
                "projectId",
                "projectRevision",
                "state",
                "title",
                "durationMs",
                "mimeType",
                "width",
                "height",
                "sourceId",
                "sourceSha256",
                "sourceByteLength",
                "draftId",
                "draftRevision",
                "packageId",
                "brands",
                "markers",
                "suggestedPlan",
                "consent",
                "id",
                "lastReportedAt"
              ],
              "additionalProperties": false
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "takes",
          "nextCursor"
        ],
        "additionalProperties": false
      },
      "get_take_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "takeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "includeMarkers": {
            "default": false,
            "type": "boolean"
          },
          "markerLimit": {
            "default": 100,
            "type": "integer",
            "minimum": 1,
            "maximum": 200
          }
        },
        "required": [
          "takeId"
        ],
        "additionalProperties": false
      },
      "get_take_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "take": {
            "type": "object",
            "properties": {
              "sessionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "projectRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "state": {
                "type": "string",
                "const": "ready"
              },
              "title": {
                "type": "string",
                "maxLength": 180
              },
              "durationMs": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "mimeType": {
                "type": "string",
                "enum": [
                  "video/mp4",
                  "video/webm"
                ]
              },
              "width": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 16384
              },
              "height": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 16384
              },
              "sourceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "sourceSha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "sourceByteLength": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "draftId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "draftRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "packageId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "brands": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[A-Za-z0-9_-]+$"
                    },
                    "name": {
                      "type": "string",
                      "maxLength": 180
                    },
                    "preset": {
                      "type": "string",
                      "enum": [
                        "clean",
                        "nameplate",
                        "headline",
                        "frame"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "preset"
                  ],
                  "additionalProperties": false
                }
              },
              "markers": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "question",
                        "bookmark",
                        "host-start",
                        "host-end",
                        "answer-start",
                        "answer-end"
                      ]
                    },
                    "atMs": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "label": {
                      "type": "string",
                      "maxLength": 180
                    },
                    "provenance": {
                      "type": "string",
                      "enum": [
                        "observed",
                        "suggested"
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "atMs",
                    "label",
                    "provenance"
                  ],
                  "additionalProperties": false
                }
              },
              "suggestedPlan": {
                "type": "object",
                "properties": {
                  "schemaVersion": {
                    "type": "string",
                    "const": "interviewprompter.edit-plan.v1"
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[a-zA-Z0-9_-]+$"
                  },
                  "clips": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "clipId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "sourceId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "sourceSha256": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "startMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "endMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "title": {
                          "type": "string",
                          "maxLength": 180
                        },
                        "order": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 19
                        },
                        "brandId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "aspectRatio": {
                          "type": "string",
                          "enum": [
                            "9:16",
                            "16:9",
                            "1:1"
                          ]
                        },
                        "fit": {
                          "type": "string",
                          "enum": [
                            "contain",
                            "cover"
                          ]
                        },
                        "framingX": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        },
                        "framingY": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        }
                      },
                      "required": [
                        "clipId",
                        "sourceId",
                        "sourceSha256",
                        "startMs",
                        "endMs",
                        "title",
                        "order",
                        "brandId",
                        "aspectRatio",
                        "fit",
                        "framingX",
                        "framingY"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "packageId",
                  "clips"
                ],
                "additionalProperties": false
              },
              "consent": {
                "type": "boolean",
                "const": true
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "lastReportedAt": {
                "type": "string"
              }
            },
            "required": [
              "sessionId",
              "deviceId",
              "projectId",
              "projectRevision",
              "state",
              "title",
              "durationMs",
              "mimeType",
              "width",
              "height",
              "sourceId",
              "sourceSha256",
              "sourceByteLength",
              "draftId",
              "draftRevision",
              "packageId",
              "brands",
              "markers",
              "suggestedPlan",
              "consent",
              "id",
              "lastReportedAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "take"
        ],
        "additionalProperties": false
      },
      "propose_edits_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "takeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "draftId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "packageId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "expectedDraftRevision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "plan": {
            "type": "object",
            "properties": {
              "schemaVersion": {
                "type": "string",
                "const": "interviewprompter.edit-plan.v1"
              },
              "packageId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[a-zA-Z0-9_-]+$"
              },
              "clips": {
                "minItems": 1,
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "clipId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    },
                    "sourceId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    },
                    "sourceSha256": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "startMs": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "endMs": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "title": {
                      "type": "string",
                      "maxLength": 180
                    },
                    "order": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 19
                    },
                    "brandId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[a-zA-Z0-9_-]+$"
                    },
                    "aspectRatio": {
                      "type": "string",
                      "enum": [
                        "9:16",
                        "16:9",
                        "1:1"
                      ]
                    },
                    "fit": {
                      "type": "string",
                      "enum": [
                        "contain",
                        "cover"
                      ]
                    },
                    "framingX": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "framingY": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    }
                  },
                  "required": [
                    "clipId",
                    "sourceId",
                    "sourceSha256",
                    "startMs",
                    "endMs",
                    "title",
                    "order",
                    "brandId",
                    "aspectRatio",
                    "fit",
                    "framingX",
                    "framingY"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "schemaVersion",
              "packageId",
              "clips"
            ],
            "additionalProperties": false
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "takeId",
          "draftId",
          "packageId",
          "expectedDraftRevision",
          "plan",
          "idempotencyKey"
        ],
        "additionalProperties": false
      },
      "propose_edits_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "proposal": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "takeId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "draftId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "packageId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "expectedDraftRevision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "plan": {
                "type": "object",
                "properties": {
                  "schemaVersion": {
                    "type": "string",
                    "const": "interviewprompter.edit-plan.v1"
                  },
                  "packageId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[a-zA-Z0-9_-]+$"
                  },
                  "clips": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "clipId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "sourceId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "sourceSha256": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        },
                        "startMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "endMs": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "title": {
                          "type": "string",
                          "maxLength": 180
                        },
                        "order": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 19
                        },
                        "brandId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100,
                          "pattern": "^[a-zA-Z0-9_-]+$"
                        },
                        "aspectRatio": {
                          "type": "string",
                          "enum": [
                            "9:16",
                            "16:9",
                            "1:1"
                          ]
                        },
                        "fit": {
                          "type": "string",
                          "enum": [
                            "contain",
                            "cover"
                          ]
                        },
                        "framingX": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        },
                        "framingY": {
                          "type": "number",
                          "minimum": -1,
                          "maximum": 1
                        }
                      },
                      "required": [
                        "clipId",
                        "sourceId",
                        "sourceSha256",
                        "startMs",
                        "endMs",
                        "title",
                        "order",
                        "brandId",
                        "aspectRatio",
                        "fit",
                        "framingX",
                        "framingY"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "schemaVersion",
                  "packageId",
                  "clips"
                ],
                "additionalProperties": false
              },
              "digest": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "validation": {
                "type": "string",
                "enum": [
                  "structure_valid",
                  "device_validated"
                ]
              },
              "createdAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "takeId",
              "draftId",
              "packageId",
              "expectedDraftRevision",
              "plan",
              "digest",
              "validation",
              "createdAt",
              "expiresAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "proposal"
        ],
        "additionalProperties": false
      },
      "request_export_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "takeId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "draftId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "expectedDraftRevision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "proposalDigest": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "output": {
            "default": "zip",
            "type": "string",
            "enum": [
              "source",
              "clips",
              "zip"
            ]
          },
          "clipIds": {
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9_-]+$"
            }
          },
          "settings": {
            "default": {
              "resolution": 720,
              "format": "auto"
            },
            "type": "object",
            "properties": {
              "resolution": {
                "default": 720,
                "anyOf": [
                  {
                    "type": "number",
                    "const": 720
                  },
                  {
                    "type": "number",
                    "const": 1080
                  }
                ]
              },
              "format": {
                "default": "auto",
                "type": "string",
                "enum": [
                  "auto",
                  "mp4",
                  "webm"
                ]
              }
            },
            "additionalProperties": false
          },
          "includeOriginals": {
            "default": false,
            "type": "boolean"
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "takeId",
          "idempotencyKey"
        ],
        "additionalProperties": false
      },
      "request_export_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "const": "export"
              },
              "sessionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "takeId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "state": {
                "type": "string",
                "enum": [
                  "accepted",
                  "awaiting_device",
                  "awaiting_user",
                  "validating",
                  "queued",
                  "rendering",
                  "verifying",
                  "packaging",
                  "ready_local",
                  "completed_native_write",
                  "download_started",
                  "cancel_requested",
                  "canceled",
                  "failed",
                  "interrupted",
                  "expired"
                ]
              },
              "request": {
                "type": "object",
                "properties": {
                  "takeId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "draftId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "expectedDraftRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "proposalId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "proposalDigest": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "output": {
                    "default": "zip",
                    "type": "string",
                    "enum": [
                      "source",
                      "clips",
                      "zip"
                    ]
                  },
                  "clipIds": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[A-Za-z0-9_-]+$"
                    }
                  },
                  "settings": {
                    "default": {
                      "resolution": 720,
                      "format": "auto"
                    },
                    "type": "object",
                    "properties": {
                      "resolution": {
                        "default": 720,
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 720
                          },
                          {
                            "type": "number",
                            "const": 1080
                          }
                        ]
                      },
                      "format": {
                        "default": "auto",
                        "type": "string",
                        "enum": [
                          "auto",
                          "mp4",
                          "webm"
                        ]
                      }
                    },
                    "required": [
                      "resolution",
                      "format"
                    ],
                    "additionalProperties": false
                  },
                  "includeOriginals": {
                    "default": false,
                    "type": "boolean"
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "takeId",
                  "output",
                  "settings",
                  "includeOriginals",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "attempt": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "progress": {
                "type": "object",
                "properties": {
                  "completed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "total": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "fraction": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "completed",
                  "total",
                  "fraction"
                ],
                "additionalProperties": false
              },
              "receipt": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "mimeType": {
                    "type": "string",
                    "enum": [
                      "video/mp4",
                      "video/webm",
                      "application/zip"
                    ]
                  },
                  "byteLength": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "sha256": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "clipCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  },
                  "delivery": {
                    "type": "string",
                    "enum": [
                      "completed_native_write",
                      "download_started"
                    ]
                  },
                  "deviceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "filename",
                  "mimeType",
                  "byteLength",
                  "sha256",
                  "clipCount",
                  "delivery",
                  "deviceId"
                ],
                "additionalProperties": false
              },
              "error": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "additionalProperties": false
              },
              "nextAction": {
                "type": "object",
                "properties": {
                  "actor": {
                    "type": "string",
                    "enum": [
                      "user",
                      "assistant",
                      "device"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 240
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "actor",
                  "type",
                  "label"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "kind",
              "sessionId",
              "takeId",
              "deviceId",
              "state",
              "request",
              "createdAt",
              "updatedAt",
              "expiresAt",
              "attempt",
              "nextAction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "job"
        ],
        "additionalProperties": false
      },
      "get_job_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "jobId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "jobId"
        ],
        "additionalProperties": false
      },
      "get_job_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "const": "export"
              },
              "sessionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "takeId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "state": {
                "type": "string",
                "enum": [
                  "accepted",
                  "awaiting_device",
                  "awaiting_user",
                  "validating",
                  "queued",
                  "rendering",
                  "verifying",
                  "packaging",
                  "ready_local",
                  "completed_native_write",
                  "download_started",
                  "cancel_requested",
                  "canceled",
                  "failed",
                  "interrupted",
                  "expired"
                ]
              },
              "request": {
                "type": "object",
                "properties": {
                  "takeId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "draftId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "expectedDraftRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "proposalId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "proposalDigest": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "output": {
                    "default": "zip",
                    "type": "string",
                    "enum": [
                      "source",
                      "clips",
                      "zip"
                    ]
                  },
                  "clipIds": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[A-Za-z0-9_-]+$"
                    }
                  },
                  "settings": {
                    "default": {
                      "resolution": 720,
                      "format": "auto"
                    },
                    "type": "object",
                    "properties": {
                      "resolution": {
                        "default": 720,
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 720
                          },
                          {
                            "type": "number",
                            "const": 1080
                          }
                        ]
                      },
                      "format": {
                        "default": "auto",
                        "type": "string",
                        "enum": [
                          "auto",
                          "mp4",
                          "webm"
                        ]
                      }
                    },
                    "required": [
                      "resolution",
                      "format"
                    ],
                    "additionalProperties": false
                  },
                  "includeOriginals": {
                    "default": false,
                    "type": "boolean"
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "takeId",
                  "output",
                  "settings",
                  "includeOriginals",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "attempt": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "progress": {
                "type": "object",
                "properties": {
                  "completed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "total": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "fraction": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "completed",
                  "total",
                  "fraction"
                ],
                "additionalProperties": false
              },
              "receipt": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "mimeType": {
                    "type": "string",
                    "enum": [
                      "video/mp4",
                      "video/webm",
                      "application/zip"
                    ]
                  },
                  "byteLength": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "sha256": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "clipCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  },
                  "delivery": {
                    "type": "string",
                    "enum": [
                      "completed_native_write",
                      "download_started"
                    ]
                  },
                  "deviceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "filename",
                  "mimeType",
                  "byteLength",
                  "sha256",
                  "clipCount",
                  "delivery",
                  "deviceId"
                ],
                "additionalProperties": false
              },
              "error": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "additionalProperties": false
              },
              "nextAction": {
                "type": "object",
                "properties": {
                  "actor": {
                    "type": "string",
                    "enum": [
                      "user",
                      "assistant",
                      "device"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 240
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "actor",
                  "type",
                  "label"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "kind",
              "sessionId",
              "takeId",
              "deviceId",
              "state",
              "request",
              "createdAt",
              "updatedAt",
              "expiresAt",
              "attempt",
              "nextAction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "job"
        ],
        "additionalProperties": false
      },
      "cancel_job_input": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "jobId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[A-Za-z0-9_-]+$"
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 8,
            "maxLength": 128,
            "pattern": "^[A-Za-z0-9_-]+$"
          }
        },
        "required": [
          "jobId",
          "idempotencyKey"
        ],
        "additionalProperties": false
      },
      "cancel_job_output": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "kind": {
                "type": "string",
                "const": "export"
              },
              "sessionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "takeId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "deviceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              "state": {
                "type": "string",
                "enum": [
                  "accepted",
                  "awaiting_device",
                  "awaiting_user",
                  "validating",
                  "queued",
                  "rendering",
                  "verifying",
                  "packaging",
                  "ready_local",
                  "completed_native_write",
                  "download_started",
                  "cancel_requested",
                  "canceled",
                  "failed",
                  "interrupted",
                  "expired"
                ]
              },
              "request": {
                "type": "object",
                "properties": {
                  "takeId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "draftId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "expectedDraftRevision": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "proposalId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  },
                  "proposalDigest": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "output": {
                    "default": "zip",
                    "type": "string",
                    "enum": [
                      "source",
                      "clips",
                      "zip"
                    ]
                  },
                  "clipIds": {
                    "minItems": 1,
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100,
                      "pattern": "^[A-Za-z0-9_-]+$"
                    }
                  },
                  "settings": {
                    "default": {
                      "resolution": 720,
                      "format": "auto"
                    },
                    "type": "object",
                    "properties": {
                      "resolution": {
                        "default": 720,
                        "anyOf": [
                          {
                            "type": "number",
                            "const": 720
                          },
                          {
                            "type": "number",
                            "const": 1080
                          }
                        ]
                      },
                      "format": {
                        "default": "auto",
                        "type": "string",
                        "enum": [
                          "auto",
                          "mp4",
                          "webm"
                        ]
                      }
                    },
                    "required": [
                      "resolution",
                      "format"
                    ],
                    "additionalProperties": false
                  },
                  "includeOriginals": {
                    "default": false,
                    "type": "boolean"
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 128,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "takeId",
                  "output",
                  "settings",
                  "includeOriginals",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              },
              "createdAt": {
                "type": "string"
              },
              "updatedAt": {
                "type": "string"
              },
              "expiresAt": {
                "type": "string"
              },
              "attempt": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "progress": {
                "type": "object",
                "properties": {
                  "completed": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "total": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 20
                  },
                  "fraction": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "completed",
                  "total",
                  "fraction"
                ],
                "additionalProperties": false
              },
              "receipt": {
                "type": "object",
                "properties": {
                  "filename": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 240
                  },
                  "mimeType": {
                    "type": "string",
                    "enum": [
                      "video/mp4",
                      "video/webm",
                      "application/zip"
                    ]
                  },
                  "byteLength": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "sha256": {
                    "type": "string",
                    "pattern": "^[a-f0-9]{64}$"
                  },
                  "clipCount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 20
                  },
                  "delivery": {
                    "type": "string",
                    "enum": [
                      "completed_native_write",
                      "download_started"
                    ]
                  },
                  "deviceId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100,
                    "pattern": "^[A-Za-z0-9_-]+$"
                  }
                },
                "required": [
                  "filename",
                  "mimeType",
                  "byteLength",
                  "sha256",
                  "clipCount",
                  "delivery",
                  "deviceId"
                ],
                "additionalProperties": false
              },
              "error": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "message": {
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "required": [
                  "code",
                  "message"
                ],
                "additionalProperties": false
              },
              "nextAction": {
                "type": "object",
                "properties": {
                  "actor": {
                    "type": "string",
                    "enum": [
                      "user",
                      "assistant",
                      "device"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 240
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "actor",
                  "type",
                  "label"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "id",
              "kind",
              "sessionId",
              "takeId",
              "deviceId",
              "state",
              "request",
              "createdAt",
              "updatedAt",
              "expiresAt",
              "attempt",
              "nextAction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "job"
        ],
        "additionalProperties": false
      },
      "ApiError": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "message": {
                "type": "string",
                "maxLength": 1000
              },
              "retryable": {
                "type": "boolean"
              },
              "requestId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "nextAction": {
                "type": "object",
                "properties": {
                  "actor": {
                    "type": "string",
                    "enum": [
                      "user",
                      "assistant",
                      "device"
                    ]
                  },
                  "type": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "label": {
                    "type": "string",
                    "maxLength": 240
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 500
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "actor",
                  "type",
                  "label"
                ],
                "additionalProperties": false
              },
              "fieldErrors": {
                "maxItems": 20,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "field": {
                      "type": "string",
                      "maxLength": 500
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "field",
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "code",
              "message",
              "retryable",
              "requestId",
              "nextAction"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "OAuth": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://interviewprompter.app/oauth/authorize",
            "tokenUrl": "https://interviewprompter.app/oauth/token",
            "scopes": {
              "projects:read": "projects:read",
              "projects:write": "projects:write",
              "studio:prepare": "studio:prepare",
              "takes:read": "takes:read",
              "edits:propose": "edits:propose",
              "exports:request": "exports:request"
            }
          }
        }
      }
    }
  }
}
