{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "The approval block (action). Reads: the first 20 rows of `source`. Shape: one row per decision with an `id`, a title column, an optional text column, and the set column.",
  "properties": {
    "approval": {
      "additionalProperties": false,
      "properties": {
        "approve": {
          "additionalProperties": false,
          "description": "The approve button: a set of one column.",
          "properties": {
            "column": {
              "description": "The column it sets.",
              "pattern": "^[a-z][a-z0-9_]{0,62}$",
              "type": "string"
            },
            "label": {
              "default": "Approve",
              "description": "The button's words.",
              "maxLength": 40,
              "minLength": 1,
              "type": "string"
            },
            "value": {
              "description": "The value it sets.",
              "type": [
                "string",
                "number",
                "boolean",
                "null"
              ]
            }
          },
          "required": [
            "column",
            "value"
          ],
          "type": "object"
        },
        "id": {
          "description": "The block's id: its Markdown anchor and its actions' route (`/act/<id>/<action>`). Default `<type>-<n>`, n counting blocks of this type depth-first from 1.",
          "pattern": "^[a-z][a-z0-9-]{1,38}$",
          "type": "string"
        },
        "reject": {
          "additionalProperties": false,
          "description": "The reject button: a set of one column.",
          "properties": {
            "column": {
              "description": "The column it sets.",
              "pattern": "^[a-z][a-z0-9_]{0,62}$",
              "type": "string"
            },
            "label": {
              "default": "Reject",
              "description": "The button's words.",
              "maxLength": 40,
              "minLength": 1,
              "type": "string"
            },
            "value": {
              "description": "The value it sets.",
              "type": [
                "string",
                "number",
                "boolean",
                "null"
              ]
            }
          },
          "required": [
            "column",
            "value"
          ],
          "type": "object"
        },
        "source": {
          "description": "The source whose rows wait for a decision (at most 20 shown).",
          "pattern": "^[a-z][a-z0-9_]{0,62}$",
          "type": "string"
        },
        "text": {
          "description": "The column holding each card's text.",
          "pattern": "^[a-z][a-z0-9_]{0,62}$",
          "type": "string"
        },
        "title": {
          "description": "The column holding each card's title.",
          "pattern": "^[a-z][a-z0-9_]{0,62}$",
          "type": "string"
        }
      },
      "required": [
        "source",
        "title",
        "approve",
        "reject"
      ],
      "type": "object"
    }
  },
  "required": [
    "approval"
  ],
  "title": "approval",
  "type": "object"
}