{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/ToolMessageStart",
  "title": "ToolMessageStart",
  "type": "object",
  "properties": {
    "contents": {
      "type": "array",
      "description": "This is an alternative to the `content` property. It allows to specify variants of the same content, one per language.\n\nUsage:\n- If your assistants are multilingual, you can provide content for each language.\n- If you don't provide content for a language, the first item in the array will be automatically translated to the active language at that moment.\n\nThis will override the `content` property.",
      "items": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextContent",
            "title": "Text"
          }
        ]
      }
    },
    "type": {
      "type": "string",
      "enum": [
        "request-start"
      ],
      "description": "This message is triggered when the tool call starts.\n\nThis message is never triggered for async tools.\n\nIf this message is not provided, one of the default filler messages \"Hold on a sec\", \"One moment\", \"Just a sec\", \"Give me a moment\" or \"This'll just take a sec\" will be used."
    },
    "blocking": {
      "type": "boolean",
      "description": "This is an optional boolean that if true, the tool call will only trigger after the message is spoken. Default is false.\n\n@default false",
      "example": false,
      "default": false
    },
    "content": {
      "type": "string",
      "description": "This is the content that the assistant says when this message is triggered.",
      "maxLength": 1000
    },
    "conditions": {
      "description": "This is an optional array of conditions that the tool call arguments must meet in order for this message to be triggered.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Condition"
      }
    }
  },
  "required": [
    "type"
  ]
}