{
  "openapi": "3.1.0",
  "info": {
    "title": "Avox builder API",
    "version": "1.0.0",
    "description": "Read and change tables, rows, WhatsApp Flows, templates and automations with an Avox API key. Read https://docs.theavoxai.com/avox-api/ai-assistants first if you are an AI assistant. Every error has a code explained at https://docs.theavoxai.com/api/errors."
  },
  "servers": [
    {
      "url": "https://api.theavoxai.com"
    }
  ],
  "externalDocs": {
    "url": "https://docs.theavoxai.com/avox-api/builder",
    "description": "Quick start and guides"
  },
  "security": [
    {
      "apiKey": []
    }
  ],
  "tags": [
    {
      "name": "Account"
    },
    {
      "name": "Tables",
      "description": "See tables and their columns. Write: Create, rename, archive and restore tables, and add, change or delete columns."
    },
    {
      "name": "Table rows",
      "description": "Read, filter and search rows. Write: Add, change and delete rows, and import CSV files."
    },
    {
      "name": "Flows",
      "description": "See Flows, their JSON, live data settings, request logs and answers. Write: Create Flows, change drafts, publish, deprecate and change live data settings."
    },
    {
      "name": "Templates",
      "description": "See templates and their review status. Write: Create templates, send them to WhatsApp for review and delete them."
    },
    {
      "name": "Automations",
      "description": "See automations, their steps, run logs and credit use. Write: Create and change automations and turn them on or off."
    }
  ],
  "paths": {
    "/api/v1/me": {
      "get": {
        "operationId": "meGet",
        "summary": "Who am I",
        "description": "The key, its Switchboard and WhatsApp number, its scopes, and every limit with what's used. Call it first.\n\nAny key may call it.\n\nReturns: { key, switchboard, whatsappNumber, plan, limits, docs }",
        "tags": [
          "Account"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "{ key, switchboard, whatsappNumber, plan, limits, docs }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/api/v1/catalog": {
      "get": {
        "operationId": "catalogGet",
        "summary": "Catalog",
        "description": "Premade tables, Flows, templates and automations with their ids, and the types a body may use.\n\nAny key may call it.\n\nReturns: { tables, flows, templates, automations, types, scopes }",
        "tags": [
          "Account"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "{ tables, flows, templates, automations, types, scopes }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/api/v1/tables": {
      "get": {
        "operationId": "tablesList",
        "summary": "List tables",
        "description": "Active and archived tables (not drafts), newest change first, with the plan's table limits.\n\nNeeds the key scope `tables:read`.\n\nReturns: { tables, limits }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "active or archived",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ tables, limits }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:read"
      },
      "post": {
        "operationId": "tablesCreate",
        "summary": "Create a table",
        "description": "From your own columns, or from a premade table (premadeId). Counts against the plan's tables.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { table, samplesAdded }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                      },
                      "description": {
                        "type": "string",
                        "maxLength": 500
                      },
                      "icon": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^[A-Za-z][A-Za-z0-9]{0,59}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "color": {
                        "type": "string",
                        "enum": [
                          "brand",
                          "coral",
                          "sky",
                          "violet",
                          "emerald",
                          "amber",
                          "rose",
                          "slate"
                        ]
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "list",
                          "calendar",
                          "catalog",
                          "lookup",
                          "custom"
                        ]
                      },
                      "templateId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^[a-z0-9-]{1,60}$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "columns": {
                        "minItems": 1,
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "key": {
                              "type": "string",
                              "pattern": "^[a-z][a-z0-9_]{0,39}$"
                            },
                            "name": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60,
                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "text",
                                "long_text",
                                "number",
                                "currency",
                                "boolean",
                                "date",
                                "time",
                                "datetime",
                                "select",
                                "multi_select",
                                "phone",
                                "email",
                                "url",
                                "image",
                                "rating",
                                "duration",
                                "contact",
                                "auto_number",
                                "formula"
                              ]
                            },
                            "required": {
                              "type": "boolean"
                            },
                            "unique": {
                              "type": "boolean"
                            },
                            "defaultValue": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 10000
                                },
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "boolean"
                                },
                                {
                                  "maxItems": 50,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "maxLength": 60
                                  }
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "options": {
                              "type": "object",
                              "properties": {
                                "choices": {
                                  "maxItems": 100,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^o[0-9a-z]{6,12}$"
                                      },
                                      "label": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 60,
                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                      },
                                      "color": {
                                        "type": "string",
                                        "enum": [
                                          "gray",
                                          "brand",
                                          "coral",
                                          "sky",
                                          "violet",
                                          "emerald",
                                          "amber",
                                          "rose"
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "label",
                                      "color"
                                    ]
                                  }
                                },
                                "currency": {
                                  "type": "string",
                                  "pattern": "^[A-Z]{3}$"
                                },
                                "decimals": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 6
                                },
                                "min": {
                                  "type": "number"
                                },
                                "max": {
                                  "type": "number"
                                },
                                "maxRating": {
                                  "type": "integer",
                                  "minimum": 3,
                                  "maximum": 10
                                },
                                "prefix": {
                                  "type": "string",
                                  "maxLength": 10,
                                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                },
                                "start": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 1000000000
                                },
                                "digits": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 10
                                },
                                "expression": {
                                  "type": "string",
                                  "maxLength": 1000
                                },
                                "resultType": {
                                  "type": "string",
                                  "enum": [
                                    "number",
                                    "text",
                                    "boolean",
                                    "date"
                                  ]
                                },
                                "defaultCountry": {
                                  "type": "string",
                                  "pattern": "^\\d{1,4}$"
                                },
                                "maxLength": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 1000
                                },
                                "dateFormat": {
                                  "type": "string",
                                  "enum": [
                                    "dmy",
                                    "mdy",
                                    "ymd"
                                  ]
                                },
                                "timeFormat": {
                                  "type": "string",
                                  "enum": [
                                    "12h",
                                    "24h"
                                  ]
                                }
                              },
                              "additionalProperties": false
                            },
                            "description": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "maxLength": 300
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "hidden": {
                              "type": "boolean"
                            },
                            "width": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 60,
                                  "maximum": 800
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "key",
                            "name",
                            "type"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "withSamples": {
                        "type": "boolean"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "name",
                      "columns"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "premadeId": {
                        "type": "string",
                        "pattern": "^[a-z0-9-]{1,60}$",
                        "description": "A premade table id from GET /api/v1/catalog"
                      },
                      "name": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "withSamples": {
                        "description": "Add the premade's sample rows",
                        "type": "boolean"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "premadeId"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ table, samplesAdded }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}": {
      "get": {
        "operationId": "tablesGet",
        "summary": "Get a table",
        "description": "One table with its columns. tableId is the id or the table's API name (slug).\n\nNeeds the key scope `tables:read`.\n\nReturns: { table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          }
        ],
        "responses": {
          "200": {
            "description": "{ table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:read"
      },
      "patch": {
        "operationId": "tablesUpdate",
        "summary": "Update a table",
        "description": "Name, description, icon, color, kind, API name (slug) and grid settings. Archived tables can be renamed.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80,
                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 500
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "icon": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[A-Za-z][A-Za-z0-9]{0,59}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "color": {
                    "type": "string",
                    "enum": [
                      "brand",
                      "coral",
                      "sky",
                      "violet",
                      "emerald",
                      "amber",
                      "rose",
                      "slate"
                    ]
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "list",
                      "calendar",
                      "catalog",
                      "lookup",
                      "custom"
                    ]
                  },
                  "slug": {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9_]{0,59}$"
                  },
                  "settings": {
                    "type": "object",
                    "properties": {
                      "frozenColumns": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 5
                      },
                      "rowHeight": {
                        "type": "string",
                        "enum": [
                          "compact",
                          "normal",
                          "tall"
                        ]
                      },
                      "titleColumnId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      },
      "delete": {
        "operationId": "tablesDelete",
        "summary": "Delete a table",
        "description": "Deletes the table and its rows. Refused with in_use while Flows, automations or templates use it, unless force=true.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { deleted, id }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "force",
            "in": "query",
            "required": false,
            "description": "true to delete although it's in use",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted, id }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}/archive": {
      "post": {
        "operationId": "tablesArchive",
        "summary": "Archive a table",
        "description": "Read-only, kept, still counted. Refused with in_use while it's used, unless force is true.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "force": {
                    "description": "Go ahead although Flows, automations or templates use it",
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}/restore": {
      "post": {
        "operationId": "tablesRestore",
        "summary": "Restore a table",
        "description": "Makes an archived table active again.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "force": {
                    "description": "Go ahead although Flows, automations or templates use it",
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}/columns": {
      "post": {
        "operationId": "columnsCreate",
        "summary": "Add a column",
        "description": "At most 50 per table. Its API name (key) is made from the name when not given.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { column, table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "column": {
                    "type": "object",
                    "properties": {
                      "key": {
                        "type": "string",
                        "pattern": "^[a-z][a-z0-9_]{0,39}$"
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 60,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "text",
                          "long_text",
                          "number",
                          "currency",
                          "boolean",
                          "date",
                          "time",
                          "datetime",
                          "select",
                          "multi_select",
                          "phone",
                          "email",
                          "url",
                          "image",
                          "rating",
                          "duration",
                          "contact",
                          "auto_number",
                          "formula"
                        ]
                      },
                      "required": {
                        "type": "boolean"
                      },
                      "unique": {
                        "type": "boolean"
                      },
                      "defaultValue": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 10000
                          },
                          {
                            "type": "number"
                          },
                          {
                            "type": "boolean"
                          },
                          {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 60
                            }
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "options": {
                        "type": "object",
                        "properties": {
                          "choices": {
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "pattern": "^o[0-9a-z]{6,12}$"
                                },
                                "label": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 60,
                                  "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                },
                                "color": {
                                  "type": "string",
                                  "enum": [
                                    "gray",
                                    "brand",
                                    "coral",
                                    "sky",
                                    "violet",
                                    "emerald",
                                    "amber",
                                    "rose"
                                  ]
                                }
                              },
                              "required": [
                                "id",
                                "label",
                                "color"
                              ]
                            }
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "decimals": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 6
                          },
                          "min": {
                            "type": "number"
                          },
                          "max": {
                            "type": "number"
                          },
                          "maxRating": {
                            "type": "integer",
                            "minimum": 3,
                            "maximum": 10
                          },
                          "prefix": {
                            "type": "string",
                            "maxLength": 10,
                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                          },
                          "start": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 1000000000
                          },
                          "digits": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10
                          },
                          "expression": {
                            "type": "string",
                            "maxLength": 1000
                          },
                          "resultType": {
                            "type": "string",
                            "enum": [
                              "number",
                              "text",
                              "boolean",
                              "date"
                            ]
                          },
                          "defaultCountry": {
                            "type": "string",
                            "pattern": "^\\d{1,4}$"
                          },
                          "maxLength": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000
                          },
                          "dateFormat": {
                            "type": "string",
                            "enum": [
                              "dmy",
                              "mdy",
                              "ymd"
                            ]
                          },
                          "timeFormat": {
                            "type": "string",
                            "enum": [
                              "12h",
                              "24h"
                            ]
                          }
                        },
                        "additionalProperties": false
                      },
                      "description": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 300
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "hidden": {
                        "type": "boolean"
                      },
                      "width": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": 60,
                            "maximum": 800
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  "afterColumn": {
                    "description": "Put it after this column (id or key); else last",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "beforeColumn": {
                    "description": "Put it before this column (id or key)",
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 80
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "column"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ column, table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}/columns/{columnId}": {
      "patch": {
        "operationId": "columnsUpdate",
        "summary": "Update a column",
        "description": "Name, API name, type (values converted; confirm: true when some would be emptied or the column is used), options, required, unique, default, description, hidden. columnId is the id or key.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { column, table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "columnId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The column's id or key"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 60,
                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                  },
                  "key": {
                    "type": "string",
                    "pattern": "^[a-z][a-z0-9_]{0,39}$"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "text",
                      "long_text",
                      "number",
                      "currency",
                      "boolean",
                      "date",
                      "time",
                      "datetime",
                      "select",
                      "multi_select",
                      "phone",
                      "email",
                      "url",
                      "image",
                      "rating",
                      "duration",
                      "contact",
                      "auto_number",
                      "formula"
                    ]
                  },
                  "options": {
                    "type": "object",
                    "properties": {
                      "choices": {
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "pattern": "^o[0-9a-z]{6,12}$"
                            },
                            "label": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 60,
                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                            },
                            "color": {
                              "type": "string",
                              "enum": [
                                "gray",
                                "brand",
                                "coral",
                                "sky",
                                "violet",
                                "emerald",
                                "amber",
                                "rose"
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "label",
                            "color"
                          ]
                        }
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "decimals": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 6
                      },
                      "min": {
                        "type": "number"
                      },
                      "max": {
                        "type": "number"
                      },
                      "maxRating": {
                        "type": "integer",
                        "minimum": 3,
                        "maximum": 10
                      },
                      "prefix": {
                        "type": "string",
                        "maxLength": 10,
                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                      },
                      "start": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 1000000000
                      },
                      "digits": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10
                      },
                      "expression": {
                        "type": "string",
                        "maxLength": 1000
                      },
                      "resultType": {
                        "type": "string",
                        "enum": [
                          "number",
                          "text",
                          "boolean",
                          "date"
                        ]
                      },
                      "defaultCountry": {
                        "type": "string",
                        "pattern": "^\\d{1,4}$"
                      },
                      "maxLength": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 1000
                      },
                      "dateFormat": {
                        "type": "string",
                        "enum": [
                          "dmy",
                          "mdy",
                          "ymd"
                        ]
                      },
                      "timeFormat": {
                        "type": "string",
                        "enum": [
                          "12h",
                          "24h"
                        ]
                      }
                    },
                    "additionalProperties": false
                  },
                  "required": {
                    "type": "boolean"
                  },
                  "unique": {
                    "type": "boolean"
                  },
                  "defaultValue": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 10000
                      },
                      {
                        "type": "number"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 60
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "description": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 300
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "hidden": {
                    "type": "boolean"
                  },
                  "width": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 800
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "timeZone": {
                    "type": "string",
                    "maxLength": 64
                  },
                  "confirm": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ column, table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      },
      "delete": {
        "operationId": "columnsDelete",
        "summary": "Delete a column",
        "description": "Deletes the column and its cells. Refused with in_use while it's used, unless force=true.\n\nNeeds the key scope `tables:write`. Test keys are refused (test_key_read_only).\n\nReturns: { deleted, table }",
        "tags": [
          "Tables"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "columnId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The column's id or key"
          },
          {
            "name": "force",
            "in": "query",
            "required": false,
            "description": "true to delete although it's in use",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted, table }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "tables:write"
      }
    },
    "/api/v1/tables/{tableId}/rows": {
      "get": {
        "operationId": "rowsList",
        "summary": "List rows",
        "description": "Filtered, sorted and searched. Values by column key; select cells as labels.\n\nNeeds the key scope `rows:read`.\n\nReturns: { rows, total }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "filters",
            "in": "query",
            "required": false,
            "description": "JSON array: [{\"column\":\"status\",\"op\":\"is\",\"value\":\"Confirmed\"}]",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "\"price:desc,name:asc\" (at most 3)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Search text",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Rows per page, 1 to 500 (default 100)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ rows, total }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:read"
      },
      "post": {
        "operationId": "rowsAdd",
        "summary": "Add rows",
        "description": "Up to 1000 rows, all or nothing: required columns, unique values and the plan's row limit are checked for the whole request.\n\nNeeds the key scope `rows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { rows, insertedIds }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rows": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "propertyNames": {
                        "type": "string",
                        "maxLength": 80
                      },
                      "additionalProperties": {},
                      "description": "Cell values by column key: { \"price\": 450, \"status\": \"Confirmed\" }. Select cells take their choice labels."
                    }
                  },
                  "timeZone": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "IANA time zone for dates and times written without one (default UTC)"
                  }
                },
                "required": [
                  "rows"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ rows, insertedIds }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      },
      "patch": {
        "operationId": "rowsUpdate",
        "summary": "Update rows",
        "description": "Up to 1,000 rows by id, all or nothing. With updatedAt on a row, the request is refused if it changed since.\n\nNeeds the key scope `rows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { rows }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rows": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "values": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string",
                            "maxLength": 80
                          },
                          "additionalProperties": {},
                          "description": "Cell values by column key: { \"price\": 450, \"status\": \"Confirmed\" }. Select cells take their choice labels."
                        },
                        "updatedAt": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:?\\d{2})$",
                          "description": "The row's updatedAt as you read it. When set, the whole request is refused (412 version_conflict) if the row changed since."
                        }
                      },
                      "required": [
                        "id",
                        "values"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "timeZone": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "IANA time zone for dates and times written without one (default UTC)"
                  }
                },
                "required": [
                  "rows"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ rows }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      }
    },
    "/api/v1/tables/{tableId}/rows/delete": {
      "post": {
        "operationId": "rowsDelete",
        "summary": "Delete rows",
        "description": "Up to 1,000 rows by id, all or nothing. Deleted rows can be brought back from the dashboard for 30 days.\n\nNeeds the key scope `rows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { deleted }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "rows": {
                    "minItems": 1,
                    "maxItems": 1000,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "updatedAt": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:?\\d{2})$",
                          "description": "The row's updatedAt as you read it. When set, the whole request is refused (412 version_conflict) if the row changed since."
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "rows"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ deleted }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      }
    },
    "/api/v1/tables/{tableId}/rows/import": {
      "post": {
        "operationId": "rowsImport",
        "summary": "Import CSV",
        "description": "A dry run reports what would happen; commit imports (checked again first). Up to 10,000 rows and 8 MB.\n\nNeeds the key scope `rows:write`.\n\nReturns: { mode, report }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "csv": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8388608,
                    "description": "The file's text: comma, semicolon or tab separated, UTF-8"
                  },
                  "mode": {
                    "default": "dry_run",
                    "description": "dry_run reports what would happen and writes nothing; commit imports",
                    "type": "string",
                    "enum": [
                      "dry_run",
                      "commit"
                    ]
                  },
                  "header": {
                    "default": true,
                    "description": "The first line holds the column headings",
                    "type": "boolean"
                  },
                  "columns": {
                    "description": "File heading (or \"1\", \"2\"... without a header) to a column key, \"skip\", or { \"new\": { \"name\", \"type\" } }. Without it, headings are matched to column keys and names.",
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "maxLength": 200
                    },
                    "additionalProperties": {
                      "anyOf": [
                        {
                          "type": "string",
                          "const": "skip"
                        },
                        {
                          "type": "string",
                          "maxLength": 80
                        },
                        {
                          "type": "object",
                          "properties": {
                            "new": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "maxLength": 80
                                },
                                "type": {
                                  "type": "string",
                                  "maxLength": 30
                                }
                              },
                              "required": [
                                "name",
                                "type"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "new"
                          ],
                          "additionalProperties": false
                        }
                      ]
                    }
                  },
                  "matchColumn": {
                    "description": "A unique column: rows whose value already exists are updated instead of added",
                    "type": "string",
                    "maxLength": 80
                  },
                  "addChoices": {
                    "description": "Add select options for values that aren't options yet",
                    "type": "boolean"
                  },
                  "skipInvalid": {
                    "description": "Import the good rows and leave out rows with problems",
                    "type": "boolean"
                  },
                  "timeZone": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "IANA time zone for dates and times written without one (default UTC)"
                  }
                },
                "required": [
                  "csv"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ mode, report }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      }
    },
    "/api/v1/tables/{tableId}/rows/{rowId}": {
      "get": {
        "operationId": "rowsGet",
        "summary": "Get a row",
        "description": "One row by id.\n\nNeeds the key scope `rows:read`.\n\nReturns: { row }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "rowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The row's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ row }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:read"
      },
      "patch": {
        "operationId": "rowsUpdateOne",
        "summary": "Update a row",
        "description": "Changes the cells you send. If-Match with the row's ETag refuses it when the row changed.\n\nNeeds the key scope `rows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { row }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "rowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The row's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "values": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "maxLength": 80
                    },
                    "additionalProperties": {},
                    "description": "Cell values by column key: { \"price\": 450, \"status\": \"Confirmed\" }. Select cells take their choice labels."
                  },
                  "timeZone": {
                    "type": "string",
                    "maxLength": 64,
                    "description": "IANA time zone for dates and times written without one (default UTC)"
                  }
                },
                "required": [
                  "values"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ row }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      },
      "delete": {
        "operationId": "rowsDeleteOne",
        "summary": "Delete a row",
        "description": "Deletes one row.\n\nNeeds the key scope `rows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { deleted }",
        "tags": [
          "Table rows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "tableId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The table's id or API name (slug)"
          },
          {
            "name": "rowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The row's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "rows:write"
      }
    },
    "/api/v1/flows": {
      "get": {
        "operationId": "flowsList",
        "summary": "List Flows",
        "description": "Newest first.\n\nNeeds the key scope `flows:read`.\n\nReturns: { flows }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "draft, published, deprecated or error",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ flows }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      },
      "post": {
        "operationId": "flowsCreate",
        "summary": "Create a draft Flow",
        "description": "From a premade Flow (kind template) or your own JSON (kind custom), with live data settings. Made as a draft at WhatsApp: validate, then publish. Counts against the plan's Flows.\n\nNeeds the key scope `flows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { flow, validationErrors, liveInit }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "template"
                      },
                      "templateId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "endpointUri": {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      "live": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "type": "number",
                            "const": 1
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "off",
                              "avox",
                              "passthrough",
                              "direct"
                            ]
                          },
                          "passthroughUrl": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000,
                                "format": "uri"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "timeZone": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 64,
                                "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "screens": {
                            "maxItems": 30,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "screenId": {
                                  "type": "string",
                                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                },
                                "open": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "submit": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "next": {
                                  "anyOf": [
                                    {
                                      "anyOf": [
                                        {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        },
                                        {
                                          "type": "string",
                                          "const": "SUCCESS"
                                        }
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "screenId",
                                "open",
                                "submit"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "version",
                          "mode",
                          "screens"
                        ],
                        "additionalProperties": false
                      },
                      "presetTables": {
                        "description": "A premade live Flow's tables: preset ref -> table id or API name. Without it, the newest active table made from the premade table it needs is used.",
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "maxLength": 40
                        },
                        "additionalProperties": {
                          "type": "string",
                          "maxLength": 80
                        }
                      },
                      "timeZone": {
                        "type": "string",
                        "maxLength": 64
                      }
                    },
                    "required": [
                      "kind",
                      "templateId"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "custom"
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "categories": {
                        "minItems": 1,
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        }
                      },
                      "flowJson": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      },
                      "endpointUri": {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      "sourceLibraryId": {
                        "type": "string",
                        "maxLength": 64,
                        "pattern": "^[a-z0-9_]+$"
                      },
                      "live": {
                        "type": "object",
                        "properties": {
                          "version": {
                            "type": "number",
                            "const": 1
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "off",
                              "avox",
                              "passthrough",
                              "direct"
                            ]
                          },
                          "passthroughUrl": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000,
                                "format": "uri"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "timeZone": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 64,
                                "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "screens": {
                            "maxItems": 30,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "screenId": {
                                  "type": "string",
                                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                },
                                "open": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "submit": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "next": {
                                  "anyOf": [
                                    {
                                      "anyOf": [
                                        {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        },
                                        {
                                          "type": "string",
                                          "const": "SUCCESS"
                                        }
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "screenId",
                                "open",
                                "submit"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "version",
                          "mode",
                          "screens"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "kind",
                      "name",
                      "categories",
                      "flowJson"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ flow, validationErrors, liveInit }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/validate": {
      "post": {
        "operationId": "flowsValidateJson",
        "summary": "Validate Flow JSON",
        "description": "Avox's own checks and WhatsApp's validator on JSON you send. Nothing is saved.\n\nNeeds the key scope `flows:read`.\n\nReturns: { validation }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "flowJson": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "endpointUri": {
                    "type": "string",
                    "maxLength": 2000,
                    "format": "uri"
                  },
                  "live": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "type": "number",
                        "const": 1
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "off",
                          "avox",
                          "passthrough",
                          "direct"
                        ]
                      },
                      "passthroughUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 2000,
                            "format": "uri"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "timeZone": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "screens": {
                        "maxItems": 30,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "screenId": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                            },
                            "open": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "submit": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "next": {
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                    },
                                    {
                                      "type": "string",
                                      "const": "SUCCESS"
                                    }
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "screenId",
                            "open",
                            "submit"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "version",
                      "mode",
                      "screens"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "flowJson"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ validation }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      }
    },
    "/api/v1/flows/{flowId}": {
      "get": {
        "operationId": "flowsGet",
        "summary": "Get a Flow",
        "description": "The Flow, its JSON, its live data settings, Avox's checks and WhatsApp's own status.\n\nNeeds the key scope `flows:read`.\n\nReturns: { flow, flowJson, live, meta, lint }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ flow, flowJson, live, meta, lint }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      },
      "patch": {
        "operationId": "flowsUpdate",
        "summary": "Update a draft Flow",
        "description": "Name, categories, JSON (uploaded to WhatsApp again) and table links. Only drafts can change.\n\nNeeds the key scope `flows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { flow, validationErrors, liveInit }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "categories": {
                    "minItems": 1,
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    }
                  },
                  "flowJson": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "live": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "version": {
                            "type": "number",
                            "const": 1
                          },
                          "mode": {
                            "type": "string",
                            "enum": [
                              "off",
                              "avox",
                              "passthrough",
                              "direct"
                            ]
                          },
                          "passthroughUrl": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 2000,
                                "format": "uri"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "timeZone": {
                            "anyOf": [
                              {
                                "type": "string",
                                "maxLength": 64,
                                "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "screens": {
                            "maxItems": 30,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "screenId": {
                                  "type": "string",
                                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                },
                                "open": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "submit": {
                                  "maxItems": 4,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "id": {
                                        "type": "string",
                                        "pattern": "^s[0-9a-z]{4,12}$"
                                      },
                                      "action": {
                                        "type": "string",
                                        "enum": [
                                          "list",
                                          "lookup",
                                          "exists",
                                          "write",
                                          "update",
                                          "adjust",
                                          "book",
                                          "calculate"
                                        ]
                                      },
                                      "tableId": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          {
                                            "type": "string",
                                            "const": ""
                                          }
                                        ]
                                      },
                                      "tableName": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "maxLength": 80
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "conditions": {
                                        "maxItems": 8,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "op": {
                                              "type": "string",
                                              "enum": [
                                                "is",
                                                "is_not",
                                                "contains",
                                                "not_contains",
                                                "starts_with",
                                                "is_empty",
                                                "not_empty",
                                                "gt",
                                                "gte",
                                                "lt",
                                                "lte",
                                                "has_any",
                                                "has_all",
                                                "is_true",
                                                "is_false"
                                              ]
                                            },
                                            "value": {
                                              "anyOf": [
                                                {
                                                  "oneOf": [
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "answer"
                                                        },
                                                        "key": {
                                                          "type": "string",
                                                          "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "key"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "fixed"
                                                        },
                                                        "value": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "maxLength": 1000,
                                                              "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                            },
                                                            {
                                                              "type": "number"
                                                            },
                                                            {
                                                              "type": "boolean"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "value"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "contact"
                                                        },
                                                        "field": {
                                                          "type": "string",
                                                          "enum": [
                                                            "phone",
                                                            "name"
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "field"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "today"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "now"
                                                        }
                                                      },
                                                      "required": [
                                                        "kind"
                                                      ],
                                                      "additionalProperties": false
                                                    },
                                                    {
                                                      "type": "object",
                                                      "properties": {
                                                        "kind": {
                                                          "type": "string",
                                                          "const": "row"
                                                        },
                                                        "stepId": {
                                                          "type": "string",
                                                          "pattern": "^s[0-9a-z]{4,12}$"
                                                        },
                                                        "columnId": {
                                                          "anyOf": [
                                                            {
                                                              "type": "string",
                                                              "format": "uuid",
                                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                            },
                                                            {
                                                              "type": "string",
                                                              "const": "_row"
                                                            }
                                                          ]
                                                        }
                                                      },
                                                      "required": [
                                                        "kind",
                                                        "stepId",
                                                        "columnId"
                                                      ],
                                                      "additionalProperties": false
                                                    }
                                                  ]
                                                },
                                                {
                                                  "type": "null"
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "op"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "sort": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              "dir": {
                                                "type": "string",
                                                "enum": [
                                                  "asc",
                                                  "desc"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "dir"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "limit": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 100
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "list": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "idColumnId": {
                                                "anyOf": [
                                                  {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "title": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              "description": {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "key",
                                              "title"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "fields": {
                                        "maxItems": 20,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "anyOf": [
                                                {
                                                  "type": "string",
                                                  "format": "uuid",
                                                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                },
                                                {
                                                  "type": "string",
                                                  "const": "_row"
                                                }
                                              ]
                                            },
                                            "key": {
                                              "type": "string",
                                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "key"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "existsKey": {
                                        "anyOf": [
                                          {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "values": {
                                        "maxItems": 30,
                                        "type": "array",
                                        "items": {
                                          "type": "object",
                                          "properties": {
                                            "columnId": {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            "value": {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            }
                                          },
                                          "required": [
                                            "columnId",
                                            "value"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "upsert": {
                                        "type": "boolean"
                                      },
                                      "adjust": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "columnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "direction": {
                                                "type": "string",
                                                "enum": [
                                                  "decrease",
                                                  "increase"
                                                ]
                                              },
                                              "by": {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              "floor": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              },
                                              "max": {
                                                "type": [
                                                  "number",
                                                  "null"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "columnId",
                                              "direction",
                                              "by"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "book": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "stage": {
                                                "type": "string",
                                                "enum": [
                                                  "hold",
                                                  "confirm"
                                                ]
                                              },
                                              "rowFrom": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "capacityColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "bookedColumnId": {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              "quantity": {
                                                "anyOf": [
                                                  {
                                                    "oneOf": [
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "answer"
                                                          },
                                                          "key": {
                                                            "type": "string",
                                                            "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "key"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "fixed"
                                                          },
                                                          "value": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "maxLength": 1000,
                                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                              },
                                                              {
                                                                "type": "number"
                                                              },
                                                              {
                                                                "type": "boolean"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "value"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "contact"
                                                          },
                                                          "field": {
                                                            "type": "string",
                                                            "enum": [
                                                              "phone",
                                                              "name"
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "field"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "today"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "now"
                                                          }
                                                        },
                                                        "required": [
                                                          "kind"
                                                        ],
                                                        "additionalProperties": false
                                                      },
                                                      {
                                                        "type": "object",
                                                        "properties": {
                                                          "kind": {
                                                            "type": "string",
                                                            "const": "row"
                                                          },
                                                          "stepId": {
                                                            "type": "string",
                                                            "pattern": "^s[0-9a-z]{4,12}$"
                                                          },
                                                          "columnId": {
                                                            "anyOf": [
                                                              {
                                                                "type": "string",
                                                                "format": "uuid",
                                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                              },
                                                              {
                                                                "type": "string",
                                                                "const": "_row"
                                                              }
                                                            ]
                                                          }
                                                        },
                                                        "required": [
                                                          "kind",
                                                          "stepId",
                                                          "columnId"
                                                        ],
                                                        "additionalProperties": false
                                                      }
                                                    ]
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              },
                                              "holdMinutes": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "maximum": 30
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "stage",
                                              "capacityColumnId",
                                              "bookedColumnId"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "formula": {
                                        "anyOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "expression": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 1000
                                              },
                                              "key": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              },
                                              "resultType": {
                                                "type": "string",
                                                "enum": [
                                                  "number",
                                                  "text",
                                                  "boolean"
                                                ]
                                              }
                                            },
                                            "required": [
                                              "expression",
                                              "key",
                                              "resultType"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifMissing": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      },
                                      "ifFound": {
                                        "anyOf": [
                                          {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "continue"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "error"
                                                  },
                                                  "message": {
                                                    "type": "string",
                                                    "minLength": 1,
                                                    "maxLength": 200,
                                                    "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "message"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "screen"
                                                  },
                                                  "screenId": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "screenId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "id",
                                      "action",
                                      "tableId"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "next": {
                                  "anyOf": [
                                    {
                                      "anyOf": [
                                        {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        },
                                        {
                                          "type": "string",
                                          "const": "SUCCESS"
                                        }
                                      ]
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "screenId",
                                "open",
                                "submit"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "version",
                          "mode",
                          "screens"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ flow, validationErrors, liveInit }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      },
      "delete": {
        "operationId": "flowsDelete",
        "summary": "Delete a draft Flow",
        "description": "Only a draft can be deleted; deprecate a published one.\n\nNeeds the key scope `flows:write` and, for the person who set the key's scopes, the permission \"flows.delete\". Test keys are refused (test_key_read_only).\n\nReturns: { deleted, id }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted, id }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flowId}/validate": {
      "post": {
        "operationId": "flowsValidate",
        "summary": "Validate a Flow",
        "description": "Avox's checks and WhatsApp's validator on the Flow as saved. Nothing changes.\n\nNeeds the key scope `flows:read`.\n\nReturns: { validation }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ validation }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      }
    },
    "/api/v1/flows/{flowId}/publish": {
      "post": {
        "operationId": "flowsPublish",
        "summary": "Publish a Flow",
        "description": "Publishes a draft. A live Flow needs Avox's endpoint reachable and its table links right.\n\nNeeds the key scope `flows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { flow }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ flow }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flowId}/deprecate": {
      "post": {
        "operationId": "flowsDeprecate",
        "summary": "Deprecate a Flow",
        "description": "Retires a published Flow.\n\nNeeds the key scope `flows:write` and, for the person who set the key's scopes, the permission \"flows.delete\". Test keys are refused (test_key_read_only).\n\nReturns: { flow }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ flow }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flowId}/live": {
      "get": {
        "operationId": "flowsLiveGet",
        "summary": "Get live data settings",
        "description": "Where its live data comes from, its table links per screen, links that need attention and the checks.\n\nNeeds the key scope `flows:read`.\n\nReturns: { live }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ live }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      },
      "put": {
        "operationId": "flowsLiveSave",
        "summary": "Save table links",
        "description": "Changes the table links (same data source). A change a published Flow's screens can't take answers flow_needs_new_version.\n\nNeeds the key scope `flows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { config }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "config": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "type": "number",
                        "const": 1
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "off",
                          "avox",
                          "passthrough",
                          "direct"
                        ]
                      },
                      "passthroughUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 2000,
                            "format": "uri"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "timeZone": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "screens": {
                        "maxItems": 30,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "screenId": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                            },
                            "open": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "submit": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "next": {
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                    },
                                    {
                                      "type": "string",
                                      "const": "SUCCESS"
                                    }
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "screenId",
                            "open",
                            "submit"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "version",
                      "mode",
                      "screens"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "config"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ config }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flowId}/live/mode": {
      "post": {
        "operationId": "flowsLiveMode",
        "summary": "Switch the live data source",
        "description": "action \"switch\" (drafts) or \"new_version\" (publishes a new Flow with the new source).\n\nNeeds the key scope `flows:write`. Test keys are refused (test_key_read_only).\n\nReturns: { switched, endpoint } or { newFlow }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "switch",
                      "new_version"
                    ]
                  },
                  "mode": {
                    "type": "string",
                    "enum": [
                      "off",
                      "avox",
                      "passthrough",
                      "direct"
                    ]
                  },
                  "passthroughUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "directUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 2000,
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "config": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "type": "number",
                        "const": 1
                      },
                      "mode": {
                        "type": "string",
                        "enum": [
                          "off",
                          "avox",
                          "passthrough",
                          "direct"
                        ]
                      },
                      "passthroughUrl": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 2000,
                            "format": "uri"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "timeZone": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^(UTC|[A-Za-z]+(?:[/_+-][A-Za-z0-9]+){0,4})$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "screens": {
                        "maxItems": 30,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "screenId": {
                              "type": "string",
                              "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                            },
                            "open": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "submit": {
                              "maxItems": 4,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "id": {
                                    "type": "string",
                                    "pattern": "^s[0-9a-z]{4,12}$"
                                  },
                                  "action": {
                                    "type": "string",
                                    "enum": [
                                      "list",
                                      "lookup",
                                      "exists",
                                      "write",
                                      "update",
                                      "adjust",
                                      "book",
                                      "calculate"
                                    ]
                                  },
                                  "tableId": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "format": "uuid",
                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                      },
                                      {
                                        "type": "string",
                                        "const": ""
                                      }
                                    ]
                                  },
                                  "tableName": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "maxLength": 80
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "conditions": {
                                    "maxItems": 8,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "op": {
                                          "type": "string",
                                          "enum": [
                                            "is",
                                            "is_not",
                                            "contains",
                                            "not_contains",
                                            "starts_with",
                                            "is_empty",
                                            "not_empty",
                                            "gt",
                                            "gte",
                                            "lt",
                                            "lte",
                                            "has_any",
                                            "has_all",
                                            "is_true",
                                            "is_false"
                                          ]
                                        },
                                        "value": {
                                          "anyOf": [
                                            {
                                              "oneOf": [
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "answer"
                                                    },
                                                    "key": {
                                                      "type": "string",
                                                      "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "key"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "fixed"
                                                    },
                                                    "value": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "maxLength": 1000,
                                                          "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                        },
                                                        {
                                                          "type": "number"
                                                        },
                                                        {
                                                          "type": "boolean"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "value"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "contact"
                                                    },
                                                    "field": {
                                                      "type": "string",
                                                      "enum": [
                                                        "phone",
                                                        "name"
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "field"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "today"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "now"
                                                    }
                                                  },
                                                  "required": [
                                                    "kind"
                                                  ],
                                                  "additionalProperties": false
                                                },
                                                {
                                                  "type": "object",
                                                  "properties": {
                                                    "kind": {
                                                      "type": "string",
                                                      "const": "row"
                                                    },
                                                    "stepId": {
                                                      "type": "string",
                                                      "pattern": "^s[0-9a-z]{4,12}$"
                                                    },
                                                    "columnId": {
                                                      "anyOf": [
                                                        {
                                                          "type": "string",
                                                          "format": "uuid",
                                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                        },
                                                        {
                                                          "type": "string",
                                                          "const": "_row"
                                                        }
                                                      ]
                                                    }
                                                  },
                                                  "required": [
                                                    "kind",
                                                    "stepId",
                                                    "columnId"
                                                  ],
                                                  "additionalProperties": false
                                                }
                                              ]
                                            },
                                            {
                                              "type": "null"
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "op"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "sort": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "format": "uuid",
                                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                              },
                                              {
                                                "type": "string",
                                                "const": "_row"
                                              }
                                            ]
                                          },
                                          "dir": {
                                            "type": "string",
                                            "enum": [
                                              "asc",
                                              "desc"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "dir"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "limit": {
                                    "anyOf": [
                                      {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "list": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "idColumnId": {
                                            "anyOf": [
                                              {
                                                "anyOf": [
                                                  {
                                                    "type": "string",
                                                    "format": "uuid",
                                                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                  },
                                                  {
                                                    "type": "string",
                                                    "const": "_row"
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "title": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 200,
                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                          },
                                          "description": {
                                            "anyOf": [
                                              {
                                                "type": "string",
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "key",
                                          "title"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "fields": {
                                    "maxItems": 20,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "anyOf": [
                                            {
                                              "type": "string",
                                              "format": "uuid",
                                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                            },
                                            {
                                              "type": "string",
                                              "const": "_row"
                                            }
                                          ]
                                        },
                                        "key": {
                                          "type": "string",
                                          "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "key"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "existsKey": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "values": {
                                    "maxItems": 30,
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "columnId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                        },
                                        "value": {
                                          "oneOf": [
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "answer"
                                                },
                                                "key": {
                                                  "type": "string",
                                                  "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "key"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "fixed"
                                                },
                                                "value": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "maxLength": 1000,
                                                      "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                    },
                                                    {
                                                      "type": "number"
                                                    },
                                                    {
                                                      "type": "boolean"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "value"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "contact"
                                                },
                                                "field": {
                                                  "type": "string",
                                                  "enum": [
                                                    "phone",
                                                    "name"
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "field"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "today"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "now"
                                                }
                                              },
                                              "required": [
                                                "kind"
                                              ],
                                              "additionalProperties": false
                                            },
                                            {
                                              "type": "object",
                                              "properties": {
                                                "kind": {
                                                  "type": "string",
                                                  "const": "row"
                                                },
                                                "stepId": {
                                                  "type": "string",
                                                  "pattern": "^s[0-9a-z]{4,12}$"
                                                },
                                                "columnId": {
                                                  "anyOf": [
                                                    {
                                                      "type": "string",
                                                      "format": "uuid",
                                                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                    },
                                                    {
                                                      "type": "string",
                                                      "const": "_row"
                                                    }
                                                  ]
                                                }
                                              },
                                              "required": [
                                                "kind",
                                                "stepId",
                                                "columnId"
                                              ],
                                              "additionalProperties": false
                                            }
                                          ]
                                        }
                                      },
                                      "required": [
                                        "columnId",
                                        "value"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "upsert": {
                                    "type": "boolean"
                                  },
                                  "adjust": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "columnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "direction": {
                                            "type": "string",
                                            "enum": [
                                              "decrease",
                                              "increase"
                                            ]
                                          },
                                          "by": {
                                            "oneOf": [
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "answer"
                                                  },
                                                  "key": {
                                                    "type": "string",
                                                    "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "key"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "fixed"
                                                  },
                                                  "value": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "maxLength": 1000,
                                                        "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                      },
                                                      {
                                                        "type": "number"
                                                      },
                                                      {
                                                        "type": "boolean"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "value"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "contact"
                                                  },
                                                  "field": {
                                                    "type": "string",
                                                    "enum": [
                                                      "phone",
                                                      "name"
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "field"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "today"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "now"
                                                  }
                                                },
                                                "required": [
                                                  "kind"
                                                ],
                                                "additionalProperties": false
                                              },
                                              {
                                                "type": "object",
                                                "properties": {
                                                  "kind": {
                                                    "type": "string",
                                                    "const": "row"
                                                  },
                                                  "stepId": {
                                                    "type": "string",
                                                    "pattern": "^s[0-9a-z]{4,12}$"
                                                  },
                                                  "columnId": {
                                                    "anyOf": [
                                                      {
                                                        "type": "string",
                                                        "format": "uuid",
                                                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                      },
                                                      {
                                                        "type": "string",
                                                        "const": "_row"
                                                      }
                                                    ]
                                                  }
                                                },
                                                "required": [
                                                  "kind",
                                                  "stepId",
                                                  "columnId"
                                                ],
                                                "additionalProperties": false
                                              }
                                            ]
                                          },
                                          "floor": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          },
                                          "max": {
                                            "type": [
                                              "number",
                                              "null"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "columnId",
                                          "direction",
                                          "by"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "book": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "stage": {
                                            "type": "string",
                                            "enum": [
                                              "hold",
                                              "confirm"
                                            ]
                                          },
                                          "rowFrom": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "capacityColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "bookedColumnId": {
                                            "type": "string",
                                            "format": "uuid",
                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                          },
                                          "quantity": {
                                            "anyOf": [
                                              {
                                                "oneOf": [
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "answer"
                                                      },
                                                      "key": {
                                                        "type": "string",
                                                        "pattern": "^[A-Za-z0-9_]{1,80}$"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "key"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "fixed"
                                                      },
                                                      "value": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "maxLength": 1000,
                                                            "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                                          },
                                                          {
                                                            "type": "number"
                                                          },
                                                          {
                                                            "type": "boolean"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "value"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "contact"
                                                      },
                                                      "field": {
                                                        "type": "string",
                                                        "enum": [
                                                          "phone",
                                                          "name"
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "field"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "today"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "now"
                                                      }
                                                    },
                                                    "required": [
                                                      "kind"
                                                    ],
                                                    "additionalProperties": false
                                                  },
                                                  {
                                                    "type": "object",
                                                    "properties": {
                                                      "kind": {
                                                        "type": "string",
                                                        "const": "row"
                                                      },
                                                      "stepId": {
                                                        "type": "string",
                                                        "pattern": "^s[0-9a-z]{4,12}$"
                                                      },
                                                      "columnId": {
                                                        "anyOf": [
                                                          {
                                                            "type": "string",
                                                            "format": "uuid",
                                                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                                                          },
                                                          {
                                                            "type": "string",
                                                            "const": "_row"
                                                          }
                                                        ]
                                                      }
                                                    },
                                                    "required": [
                                                      "kind",
                                                      "stepId",
                                                      "columnId"
                                                    ],
                                                    "additionalProperties": false
                                                  }
                                                ]
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          },
                                          "holdMinutes": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 1,
                                                "maximum": 30
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "stage",
                                          "capacityColumnId",
                                          "bookedColumnId"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "formula": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "expression": {
                                            "type": "string",
                                            "minLength": 1,
                                            "maxLength": 1000
                                          },
                                          "key": {
                                            "type": "string",
                                            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                          },
                                          "resultType": {
                                            "type": "string",
                                            "enum": [
                                              "number",
                                              "text",
                                              "boolean"
                                            ]
                                          }
                                        },
                                        "required": [
                                          "expression",
                                          "key",
                                          "resultType"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifMissing": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "ifFound": {
                                    "anyOf": [
                                      {
                                        "oneOf": [
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "continue"
                                              }
                                            },
                                            "required": [
                                              "kind"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "error"
                                              },
                                              "message": {
                                                "type": "string",
                                                "minLength": 1,
                                                "maxLength": 200,
                                                "pattern": "^[^\\u0000-\\u001f\\u007f]*$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "message"
                                            ],
                                            "additionalProperties": false
                                          },
                                          {
                                            "type": "object",
                                            "properties": {
                                              "kind": {
                                                "type": "string",
                                                "const": "screen"
                                              },
                                              "screenId": {
                                                "type": "string",
                                                "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                              }
                                            },
                                            "required": [
                                              "kind",
                                              "screenId"
                                            ],
                                            "additionalProperties": false
                                          }
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  }
                                },
                                "required": [
                                  "id",
                                  "action",
                                  "tableId"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "next": {
                              "anyOf": [
                                {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[A-Za-z][A-Za-z0-9_]{0,79}$"
                                    },
                                    {
                                      "type": "string",
                                      "const": "SUCCESS"
                                    }
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "screenId",
                            "open",
                            "submit"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "version",
                      "mode",
                      "screens"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "action",
                  "mode"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ switched, endpoint } or { newFlow }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:write"
      }
    },
    "/api/v1/flows/{flowId}/logs": {
      "get": {
        "operationId": "flowsLogs",
        "summary": "Live request log",
        "description": "Every live data request WhatsApp sent for the Flow, with timings and outcomes.\n\nNeeds the key scope `flows:read`.\n\nReturns: { requests, total, stats }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "outcome",
            "in": "query",
            "required": false,
            "description": "all or errors",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "7, 30 or 90 (stats range)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "10, 25, 50 or 100 (default 25)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ requests, total, stats }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      }
    },
    "/api/v1/flows/{flowId}/sends": {
      "get": {
        "operationId": "flowsSends",
        "summary": "Flow sends",
        "description": "Every send of the Flow and how far it got.\n\nNeeds the key scope `flows:read`.\n\nReturns: { sends, total, summary }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "A send status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "10, 25, 50 or 100 (default 25)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ sends, total, summary }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      }
    },
    "/api/v1/flows/{flowId}/responses": {
      "get": {
        "operationId": "flowsResponses",
        "summary": "Flow responses",
        "description": "The answers people sent, under the questions' labels.\n\nNeeds the key scope `flows:read`.\n\nReturns: { responses, columns, total }",
        "tags": [
          "Flows"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The flow's id"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "10, 25, 50 or 100 (default 25)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ responses, columns, total }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "flows:read"
      }
    },
    "/api/v1/templates": {
      "get": {
        "operationId": "templatesList",
        "summary": "List templates",
        "description": "With their review status.\n\nNeeds the key scope `templates:read`.\n\nReturns: { templates }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "APPROVED, PENDING, REJECTED, PAUSED...",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "A language code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ templates }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:read"
      },
      "post": {
        "operationId": "templatesCreate",
        "summary": "Create a template",
        "description": "Your own content, an Avox library template (libraryId) or a WhatsApp library template (libraryTemplateName). Sent to WhatsApp for review: status PENDING until it decides.\n\nNeeds the key scope `templates:write`. Test keys are refused (test_key_read_only).\n\nReturns: { template }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "custom"
                          },
                          "category": {
                            "type": "string",
                            "enum": [
                              "MARKETING",
                              "UTILITY",
                              "AUTHENTICATION"
                            ]
                          },
                          "parameterFormat": {
                            "default": "POSITIONAL",
                            "type": "string",
                            "enum": [
                              "POSITIONAL",
                              "NAMED"
                            ]
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 10,
                            "pattern": "^[a-z]{2,3}(_[A-Za-z]{2,4})?$"
                          },
                          "messageSendTtlSeconds": {
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 300
                              },
                              {
                                "type": "number",
                                "const": 600
                              },
                              {
                                "type": "number",
                                "const": 1800
                              },
                              {
                                "type": "number",
                                "const": 3600
                              }
                            ]
                          },
                          "sourceLibraryId": {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "headerFormat": {
                            "default": "NONE",
                            "type": "string",
                            "enum": [
                              "NONE",
                              "TEXT",
                              "IMAGE",
                              "VIDEO",
                              "DOCUMENT"
                            ]
                          },
                          "headerText": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "headerSampleValue": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "headerMediaHandle": {
                            "type": "string",
                            "maxLength": 4096
                          },
                          "bodyText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "footerText": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "buttons": {
                            "type": "array",
                            "items": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "QUICK_REPLY"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 40
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "URL"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 40
                                    },
                                    "url": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 2000,
                                      "pattern": "^https:\\/\\/"
                                    },
                                    "example": {
                                      "maxItems": 1,
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "maxLength": 2000,
                                        "pattern": "^https:\\/\\/"
                                      }
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text",
                                    "url"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "PHONE_NUMBER"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 40
                                    },
                                    "phone_number": {
                                      "type": "string",
                                      "minLength": 6,
                                      "maxLength": 20,
                                      "pattern": "^\\+?[0-9]+$"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text",
                                    "phone_number"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "VOICE_CALL"
                                    },
                                    "text": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 40
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "COPY_CODE"
                                    },
                                    "example": {
                                      "type": "string",
                                      "maxLength": 20
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ]
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "type": {
                                      "type": "string",
                                      "const": "REQUEST_CONTACT_INFO"
                                    }
                                  },
                                  "required": [
                                    "type"
                                  ]
                                }
                              ]
                            }
                          },
                          "sampleValues": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "namedSampleValues": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string",
                              "maxLength": 60
                            },
                            "additionalProperties": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "kind",
                          "category",
                          "name",
                          "language",
                          "bodyText"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "otp"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 10,
                            "pattern": "^[a-z]{2,3}(_[A-Za-z]{2,4})?$"
                          },
                          "messageSendTtlSeconds": {
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 300
                              },
                              {
                                "type": "number",
                                "const": 600
                              },
                              {
                                "type": "number",
                                "const": 1800
                              },
                              {
                                "type": "number",
                                "const": 3600
                              }
                            ]
                          },
                          "sourceLibraryId": {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "addSecurityRecommendation": {
                            "default": true,
                            "type": "boolean"
                          },
                          "addCodeExpiration": {
                            "default": true,
                            "type": "boolean"
                          },
                          "codeExpirationMinutes": {
                            "default": 10,
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 90
                          },
                          "otpType": {
                            "default": "ZERO_TAP",
                            "type": "string",
                            "enum": [
                              "ZERO_TAP",
                              "ONE_TAP",
                              "COPY_CODE"
                            ]
                          },
                          "supportedApps": {
                            "maxItems": 5,
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "package_name": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 224
                                },
                                "signature_hash": {
                                  "type": "string",
                                  "minLength": 11,
                                  "maxLength": 11
                                }
                              },
                              "required": [
                                "package_name",
                                "signature_hash"
                              ]
                            }
                          },
                          "zeroTapTermsAccepted": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "kind",
                          "name",
                          "language"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "calling_permission"
                          },
                          "category": {
                            "type": "string",
                            "enum": [
                              "MARKETING",
                              "UTILITY"
                            ]
                          },
                          "parameterFormat": {
                            "default": "POSITIONAL",
                            "type": "string",
                            "enum": [
                              "POSITIONAL",
                              "NAMED"
                            ]
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 10,
                            "pattern": "^[a-z]{2,3}(_[A-Za-z]{2,4})?$"
                          },
                          "messageSendTtlSeconds": {
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 300
                              },
                              {
                                "type": "number",
                                "const": 600
                              },
                              {
                                "type": "number",
                                "const": 1800
                              },
                              {
                                "type": "number",
                                "const": 3600
                              }
                            ]
                          },
                          "sourceLibraryId": {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "headerFormat": {
                            "default": "NONE",
                            "type": "string",
                            "enum": [
                              "NONE",
                              "TEXT",
                              "IMAGE",
                              "VIDEO",
                              "DOCUMENT"
                            ]
                          },
                          "headerText": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "headerSampleValue": {
                            "type": "string",
                            "maxLength": 200
                          },
                          "headerMediaHandle": {
                            "type": "string",
                            "maxLength": 4096
                          },
                          "bodyText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "footerText": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "sampleValues": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "namedSampleValues": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string",
                              "maxLength": 60
                            },
                            "additionalProperties": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "kind",
                          "category",
                          "name",
                          "language",
                          "bodyText"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "kind": {
                            "type": "string",
                            "const": "catalogue"
                          },
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 512,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "language": {
                            "type": "string",
                            "minLength": 2,
                            "maxLength": 10,
                            "pattern": "^[a-z]{2,3}(_[A-Za-z]{2,4})?$"
                          },
                          "messageSendTtlSeconds": {
                            "anyOf": [
                              {
                                "type": "number",
                                "const": 300
                              },
                              {
                                "type": "number",
                                "const": 600
                              },
                              {
                                "type": "number",
                                "const": 1800
                              },
                              {
                                "type": "number",
                                "const": 3600
                              }
                            ]
                          },
                          "sourceLibraryId": {
                            "type": "string",
                            "maxLength": 64,
                            "pattern": "^[a-z0-9_]+$"
                          },
                          "bodyText": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 1024
                          },
                          "footerText": {
                            "type": "string",
                            "maxLength": 60
                          },
                          "sampleValues": {
                            "maxItems": 50,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "kind",
                          "name",
                          "language",
                          "bodyText"
                        ]
                      }
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "libraryId": {
                        "type": "string",
                        "pattern": "^[a-z0-9_]{1,64}$",
                        "description": "An Avox template id from GET /api/v1/catalog"
                      },
                      "name": {
                        "description": "The template's WhatsApp name (default: the library id)",
                        "type": "string"
                      },
                      "language": {
                        "description": "One of the template's languages (default: its own default)",
                        "type": "string"
                      },
                      "headerMediaHandle": {
                        "type": "string",
                        "maxLength": 4000
                      }
                    },
                    "required": [
                      "libraryId"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 512,
                        "pattern": "^[a-z0-9_]+$"
                      },
                      "language": {
                        "type": "string",
                        "minLength": 2,
                        "maxLength": 10
                      },
                      "libraryTemplateName": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 512
                      },
                      "bodyInputs": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string",
                          "maxLength": 100
                        },
                        "additionalProperties": {
                          "anyOf": [
                            {
                              "type": "string",
                              "maxLength": 1000
                            },
                            {
                              "type": "number"
                            },
                            {
                              "type": "boolean"
                            }
                          ]
                        }
                      },
                      "buttonInputs": {
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        }
                      }
                    },
                    "required": [
                      "name",
                      "language",
                      "libraryTemplateName"
                    ]
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ template }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:write"
      }
    },
    "/api/v1/templates/library": {
      "get": {
        "operationId": "templatesLibrary",
        "summary": "WhatsApp's template library",
        "description": "WhatsApp's own pre-approved Utility templates.\n\nNeeds the key scope `templates:read`.\n\nReturns: { templates }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Words",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topic",
            "in": "query",
            "required": false,
            "description": "A topic",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "usecase",
            "in": "query",
            "required": false,
            "description": "A use case",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "industry",
            "in": "query",
            "required": false,
            "description": "An industry",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "A language code",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "1 to 50",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ templates }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:read"
      }
    },
    "/api/v1/templates/{templateId}": {
      "get": {
        "operationId": "templatesGet",
        "summary": "Get a template",
        "description": "The template, its status and whether it can be edited now.\n\nNeeds the key scope `templates:read`.\n\nReturns: { template, editing }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The template's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ template, editing }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:read"
      },
      "patch": {
        "operationId": "templatesUpdate",
        "summary": "Edit a template",
        "description": "Header, body, footer text and category; WhatsApp reviews it again. Approved templates: once a day, 10 times in 30 days, category locked.\n\nNeeds the key scope `templates:write`. Test keys are refused (test_key_read_only).\n\nReturns: { template, changed }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The template's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "category": {
                    "type": "string",
                    "enum": [
                      "MARKETING",
                      "UTILITY",
                      "AUTHENTICATION"
                    ]
                  },
                  "headerText": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "headerSampleValue": {
                    "type": "string",
                    "maxLength": 200
                  },
                  "bodyText": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "footerText": {
                    "type": "string",
                    "maxLength": 60
                  },
                  "sampleValues": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 200
                    }
                  }
                },
                "required": [
                  "category",
                  "bodyText"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ template, changed }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:write"
      },
      "delete": {
        "operationId": "templatesDelete",
        "summary": "Delete a template",
        "description": "This language only, at WhatsApp and in Avox.\n\nNeeds the key scope `templates:write` and, for the person who set the key's scopes, the permission \"templates.delete\". Test keys are refused (test_key_read_only).\n\nReturns: { deleted, id }",
        "tags": [
          "Templates"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "templateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The template's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted, id }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "templates:write"
      }
    },
    "/api/v1/automations": {
      "get": {
        "operationId": "automationsList",
        "summary": "List automations",
        "description": "Without their steps.\n\nNeeds the key scope `automations:read`.\n\nReturns: { automations }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "draft, active or paused",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ automations }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:read"
      },
      "post": {
        "operationId": "automationsCreate",
        "summary": "Create an automation",
        "description": "A trigger and steps, or a premade (premadeId). Always a draft; all or nothing.\n\nNeeds the key scope `automations:write`. Test keys are refused (test_key_read_only).\n\nReturns: { automation, problems }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "description": "1 to 255 visible characters. Retrying with the same key and body returns the first result; another body answers 409 idempotency_conflict. Kept 24 hours per key family.",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 80
                      },
                      "triggerType": {
                        "type": "string",
                        "enum": [
                          "keyword",
                          "any_message",
                          "no_reply_followup",
                          "business_hours",
                          "new_contact",
                          "tag_added",
                          "table_row_added",
                          "table_row_updated",
                          "table_row_matches",
                          "table_date",
                          "booking_created",
                          "booking_cancelled",
                          "flow_submitted"
                        ]
                      },
                      "triggerConfig": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {},
                        "description": "The trigger's settings, like { \"keywords\": [\"hours\"] }"
                      },
                      "actions": {
                        "description": "The steps, in order: { actionType, actionConfig }",
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "actionType": {
                              "type": "string",
                              "enum": [
                                "send_text",
                                "send_image",
                                "send_template",
                                "send_buttons",
                                "send_list",
                                "send_flow",
                                "mark_read",
                                "tag_contact",
                                "condition",
                                "wait_for_reply",
                                "ask_question",
                                "send_video",
                                "send_document",
                                "send_audio",
                                "send_location",
                                "send_cta_url",
                                "send_contact",
                                "delay",
                                "set_contact_field",
                                "add_note",
                                "notify_team",
                                "request_call",
                                "send_webhook",
                                "stop",
                                "table_add_row",
                                "table_update_row",
                                "table_find_row",
                                "table_increment",
                                "table_delete_row",
                                "call_app"
                              ]
                            },
                            "actionConfig": {
                              "type": "object",
                              "propertyNames": {
                                "type": "string"
                              },
                              "additionalProperties": {}
                            }
                          },
                          "required": [
                            "actionType",
                            "actionConfig"
                          ]
                        }
                      },
                      "canvas": {
                        "type": "object",
                        "propertyNames": {
                          "type": "string"
                        },
                        "additionalProperties": {}
                      },
                      "premadeId": {
                        "type": "string",
                        "maxLength": 64
                      }
                    },
                    "required": [
                      "name",
                      "triggerType",
                      "triggerConfig"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "premadeId": {
                        "type": "string",
                        "pattern": "^[a-z0-9_]{1,64}$",
                        "description": "A premade automation id from GET /api/v1/catalog"
                      },
                      "name": {
                        "type": "string"
                      },
                      "timeZone": {
                        "description": "For date and table triggers (default UTC)",
                        "type": "string",
                        "maxLength": 64
                      },
                      "utcOffsetMinutes": {
                        "description": "For Business hours triggers",
                        "type": "integer",
                        "minimum": -720,
                        "maximum": 840
                      }
                    },
                    "required": [
                      "premadeId"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "{ automation, problems }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:write"
      }
    },
    "/api/v1/automations/{automationId}": {
      "get": {
        "operationId": "automationsGet",
        "summary": "Get an automation",
        "description": "The trigger, the steps and problems with what it uses.\n\nNeeds the key scope `automations:read`.\n\nReturns: { automation, problems }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ automation, problems }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:read"
      },
      "patch": {
        "operationId": "automationsUpdate",
        "summary": "Update an automation",
        "description": "Name, trigger and steps (all steps at once). Waiting runs end when the steps change.\n\nNeeds the key scope `automations:write`. Test keys are refused (test_key_read_only).\n\nReturns: { automation, problems }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 80
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "active",
                      "paused"
                    ]
                  },
                  "triggerType": {
                    "type": "string",
                    "enum": [
                      "keyword",
                      "any_message",
                      "no_reply_followup",
                      "business_hours",
                      "new_contact",
                      "tag_added",
                      "table_row_added",
                      "table_row_updated",
                      "table_row_matches",
                      "table_date",
                      "booking_created",
                      "booking_cancelled",
                      "flow_submitted"
                    ]
                  },
                  "triggerConfig": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "canvas": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {}
                  },
                  "actions": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "actionType": {
                          "type": "string",
                          "enum": [
                            "send_text",
                            "send_image",
                            "send_template",
                            "send_buttons",
                            "send_list",
                            "send_flow",
                            "mark_read",
                            "tag_contact",
                            "condition",
                            "wait_for_reply",
                            "ask_question",
                            "send_video",
                            "send_document",
                            "send_audio",
                            "send_location",
                            "send_cta_url",
                            "send_contact",
                            "delay",
                            "set_contact_field",
                            "add_note",
                            "notify_team",
                            "request_call",
                            "send_webhook",
                            "stop",
                            "table_add_row",
                            "table_update_row",
                            "table_find_row",
                            "table_increment",
                            "table_delete_row",
                            "call_app"
                          ]
                        },
                        "actionConfig": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "actionType",
                        "actionConfig"
                      ]
                    }
                  }
                },
                "required": [],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "{ automation, problems }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:write"
      },
      "delete": {
        "operationId": "automationsDelete",
        "summary": "Delete an automation",
        "description": "For good.\n\nNeeds the key scope `automations:write` and, for the person who set the key's scopes, the permission \"automation.delete\". Test keys are refused (test_key_read_only).\n\nReturns: { deleted, id }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ deleted, id }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:write"
      }
    },
    "/api/v1/automations/{automationId}/activate": {
      "post": {
        "operationId": "automationsActivate",
        "summary": "Turn on",
        "description": "Needs a step, no problems, an unpaused Switchboard and room in the plan's active automations.\n\nNeeds the key scope `automations:write`. Test keys are refused (test_key_read_only).\n\nReturns: { automation }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ automation }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:write"
      }
    },
    "/api/v1/automations/{automationId}/deactivate": {
      "post": {
        "operationId": "automationsDeactivate",
        "summary": "Turn off",
        "description": "Pauses it; runs waiting for a reply end.\n\nNeeds the key scope `automations:write`. Test keys are refused (test_key_read_only).\n\nReturns: { automation }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "If-Match",
            "in": "header",
            "required": false,
            "description": "The item's ETag. When it changed since, 412 version_conflict and nothing is written.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ automation }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:write"
      }
    },
    "/api/v1/automations/{automationId}/runs": {
      "get": {
        "operationId": "automationsRuns",
        "summary": "Run log",
        "description": "Every run with what started it, how it ended and its credits.\n\nNeeds the key scope `automations:read`.\n\nReturns: { runs, total, summary }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "outcome",
            "in": "query",
            "required": false,
            "description": "A run outcome",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "trigger",
            "in": "query",
            "required": false,
            "description": "A trigger kind",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO time with offset",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "10, 25, 50 or 100 (default 25)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "The next_cursor of the page before",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ runs, total, summary }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:read"
      }
    },
    "/api/v1/automations/{automationId}/runs/{runId}": {
      "get": {
        "operationId": "automationsRun",
        "summary": "One run",
        "description": "Step by step.\n\nNeeds the key scope `automations:read`.\n\nReturns: { run }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The run's id"
          }
        ],
        "responses": {
          "200": {
            "description": "{ run }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:read"
      }
    },
    "/api/v1/automations/{automationId}/credits": {
      "get": {
        "operationId": "automationsCredits",
        "summary": "Credit use",
        "description": "This period and all time, per run, per day, its share and next month's estimate.\n\nNeeds the key scope `automations:read`.\n\nReturns: { credits }",
        "tags": [
          "Automations"
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "parameters": [
          {
            "name": "automationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "The automation's id"
          },
          {
            "name": "tz",
            "in": "query",
            "required": false,
            "description": "IANA time zone for the daily figures (default UTC)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ credits }",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "401": {
            "$ref": "#/components/responses/Error"
          },
          "403": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "409": {
            "$ref": "#/components/responses/Error"
          },
          "412": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "429": {
            "$ref": "#/components/responses/Error"
          },
          "500": {
            "$ref": "#/components/responses/Error"
          },
          "502": {
            "$ref": "#/components/responses/Error"
          },
          "503": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-avox-scope": "automations:read"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "An Avox API key (avx_live_... or avx_test_...) from Settings > API Keys. Scopes: send, tables:read, tables:write, rows:read, rows:write, flows:read, flows:write, templates:read, templates:write, automations:read, automations:write."
      }
    },
    "schemas": {
      "Success": {
        "type": "object",
        "required": [
          "ok",
          "request_id",
          "data"
        ],
        "properties": {
          "ok": {
            "const": true
          },
          "request_id": {
            "type": "string",
            "description": "Also the X-Request-Id header"
          },
          "data": {
            "description": "The result (see each operation)"
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ],
            "description": "Lists: pass it as cursor for the next page; null on the last page"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Detail"
            }
          },
          "test": {
            "const": true,
            "description": "Only on test-key responses"
          }
        }
      },
      "Detail": {
        "type": "object",
        "required": [
          "path",
          "message"
        ],
        "properties": {
          "path": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        }
      },
      "Error": {
        "type": "object",
        "required": [
          "ok",
          "error"
        ],
        "properties": {
          "ok": {
            "const": false
          },
          "error": {
            "type": "object",
            "required": [
              "code",
              "message",
              "docs_url",
              "request_id"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "A stable code, explained at https://docs.theavoxai.com/api/errors#<code>"
              },
              "message": {
                "type": "string"
              },
              "docs_url": {
                "type": "string"
              },
              "request_id": {
                "type": "string"
              },
              "details": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Detail"
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "Error": {
        "description": "Error (see error.code; Retry-After on 429 and some 409 / 503)",
        "headers": {
          "Retry-After": {
            "schema": {
              "type": "integer"
            },
            "description": "Seconds to wait before retrying"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    }
  }
}