{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "ByteRange": {
      "properties": {
        "end": {
          "format": "uint",
          "minimum": 0.0,
          "type": "integer"
        },
        "start": {
          "format": "uint",
          "minimum": 0.0,
          "type": "integer"
        }
      },
      "required": [
        "end",
        "start"
      ],
      "type": "object"
    },
    "ImageDetail": {
      "enum": [
        "auto",
        "low",
        "high",
        "original"
      ],
      "type": "string"
    },
    "QueuedSubmission": {
      "properties": {
        "clientUserMessageId": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "input": {
          "items": {
            "$ref": "#/definitions/UserInput"
          },
          "type": "array"
        }
      },
      "required": [
        "clientUserMessageId",
        "id",
        "input"
      ],
      "type": "object"
    },
    "TextElement": {
      "properties": {
        "byteRange": {
          "allOf": [
            {
              "$ref": "#/definitions/ByteRange"
            }
          ],
          "description": "Byte range in the parent `text` buffer that this element occupies."
        },
        "placeholder": {
          "description": "Optional human-readable placeholder for the element, displayed in the UI.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "byteRange"
      ],
      "type": "object"
    },
    "UserInput": {
      "oneOf": [
        {
          "properties": {
            "text": {
              "type": "string"
            },
            "text_elements": {
              "default": [],
              "description": "UI-defined spans within `text` used to render or persist special elements.",
              "items": {
                "$ref": "#/definitions/TextElement"
              },
              "type": "array"
            },
            "type": {
              "enum": [
                "text"
              ],
              "title": "TextUserInputType",
              "type": "string"
            }
          },
          "required": [
            "text",
            "type"
          ],
          "title": "TextUserInput",
          "type": "object"
        },
        {
          "properties": {
            "detail": {
              "anyOf": [
                {
                  "$ref": "#/definitions/ImageDetail"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "type": {
              "enum": [
                "image"
              ],
              "title": "ImageUserInputType",
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "url"
          ],
          "title": "ImageUserInput",
          "type": "object"
        },
        {
          "properties": {
            "detail": {
              "anyOf": [
                {
                  "$ref": "#/definitions/ImageDetail"
                },
                {
                  "type": "null"
                }
              ],
              "default": null
            },
            "path": {
              "type": "string"
            },
            "type": {
              "enum": [
                "localImage"
              ],
              "title": "LocalImageUserInputType",
              "type": "string"
            }
          },
          "required": [
            "path",
            "type"
          ],
          "title": "LocalImageUserInput",
          "type": "object"
        },
        {
          "properties": {
            "type": {
              "enum": [
                "audio"
              ],
              "title": "AudioUserInputType",
              "type": "string"
            },
            "url": {
              "type": "string"
            }
          },
          "required": [
            "type",
            "url"
          ],
          "title": "AudioUserInput",
          "type": "object"
        },
        {
          "properties": {
            "path": {
              "type": "string"
            },
            "type": {
              "enum": [
                "localAudio"
              ],
              "title": "LocalAudioUserInputType",
              "type": "string"
            }
          },
          "required": [
            "path",
            "type"
          ],
          "title": "LocalAudioUserInput",
          "type": "object"
        },
        {
          "properties": {
            "name": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "type": {
              "enum": [
                "skill"
              ],
              "title": "SkillUserInputType",
              "type": "string"
            }
          },
          "required": [
            "name",
            "path",
            "type"
          ],
          "title": "SkillUserInput",
          "type": "object"
        },
        {
          "properties": {
            "name": {
              "type": "string"
            },
            "path": {
              "type": "string"
            },
            "type": {
              "enum": [
                "mention"
              ],
              "title": "MentionUserInputType",
              "type": "string"
            }
          },
          "required": [
            "name",
            "path",
            "type"
          ],
          "title": "MentionUserInput",
          "type": "object"
        }
      ]
    }
  },
  "properties": {
    "queuedSubmission": {
      "$ref": "#/definitions/QueuedSubmission"
    }
  },
  "required": [
    "queuedSubmission"
  ],
  "title": "ThreadQueueUpdateResponse",
  "type": "object"
}