{
  "$defs": {
    "ResponseButtonDocument": {
      "additionalProperties": false,
      "description": "One static button on a response variant.",
      "properties": {
        "payload": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Payload"
        },
        "title": {
          "title": "Title",
          "type": "string"
        }
      },
      "required": [
        "title"
      ],
      "title": "ResponseButtonDocument",
      "type": "object"
    },
    "ResponseButtonSourceDocument": {
      "additionalProperties": false,
      "description": "A tool that supplies a variant's buttons at delivery time.",
      "properties": {
        "source": {
          "title": "Source",
          "type": "string"
        }
      },
      "required": [
        "source"
      ],
      "title": "ResponseButtonSourceDocument",
      "type": "object"
    },
    "ResponseVariantDocument": {
      "additionalProperties": false,
      "description": "One response variant as written in ``responses.yml``.",
      "properties": {
        "buttons": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ResponseButtonDocument"
              },
              "type": "array"
            },
            {
              "$ref": "#/$defs/ResponseButtonSourceDocument"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Buttons"
        },
        "condition": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Condition"
        },
        "metadata": {
          "additionalProperties": true,
          "title": "Metadata",
          "type": "object"
        },
        "text": {
          "default": "",
          "title": "Text",
          "type": "string"
        }
      },
      "title": "ResponseVariantDocument",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "description": "Authoring shape of ``responses.yml`` (the ``responses:`` wrapper).",
  "properties": {
    "responses": {
      "additionalProperties": {
        "items": {
          "anyOf": [
            {
              "$ref": "#/$defs/ResponseVariantDocument"
            },
            {
              "type": "string"
            }
          ]
        },
        "type": "array"
      },
      "title": "Responses",
      "type": "object"
    }
  },
  "title": "responses.yml",
  "type": "object"
}
