{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/actionbox-cloud/json-schema/actionbox-cloud-action-create-schema.json",
  "title": "ActionCreate",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/actionbox-cloud-openapi.json#/components/schemas/ActionCreate",
  "properties": {
    "chat_delivery": {
      "type": "string",
      "enum": [
        "inherit",
        "disabled"
      ],
      "title": "Chat Delivery",
      "default": "inherit"
    },
    "context_request_mode": {
      "type": "string",
      "enum": [
        "unsupported",
        "poll",
        "callback"
      ],
      "title": "Context Request Mode",
      "default": "unsupported"
    },
    "title": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "title": "Title"
    },
    "description": {
      "type": "string",
      "maxLength": 10000,
      "title": "Description",
      "default": ""
    },
    "priority": {
      "$ref": "#/$defs/Priority",
      "default": "normal"
    },
    "open_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1,
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "title": "Open Url"
    },
    "dedupe_key": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255
        },
        {
          "type": "null"
        }
      ],
      "title": "Dedupe Key"
    },
    "callback_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1,
          "format": "uri"
        },
        {
          "type": "null"
        }
      ],
      "title": "Callback Url"
    },
    "controls": {
      "items": {
        "$ref": "#/$defs/ActionControl"
      },
      "type": "array",
      "maxItems": 12,
      "title": "Controls"
    },
    "expires_at": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expires At"
    },
    "on_expire": {
      "oneOf": [
        {
          "$ref": "#/$defs/ReturnExpiredOutcome"
        },
        {
          "$ref": "#/$defs/ResolveOnExpireOutcome"
        }
      ],
      "title": "On Expire"
    },
    "context": {
      "items": {
        "oneOf": [
          {
            "$ref": "#/$defs/KeyValueContext"
          },
          {
            "$ref": "#/$defs/TextualContext"
          },
          {
            "$ref": "#/$defs/JsonContext"
          },
          {
            "$ref": "#/$defs/MetricsContext"
          },
          {
            "$ref": "#/$defs/LinksContext"
          }
        ]
      },
      "type": "array",
      "maxItems": 12,
      "title": "Context"
    },
    "decision_class": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.-]+$"
        },
        {
          "type": "null"
        }
      ],
      "title": "Decision Class"
    },
    "decision_context": {
      "anyOf": [
        {
          "$ref": "#/$defs/DecisionContext"
        },
        {
          "type": "null"
        }
      ]
    },
    "options": {
      "items": {
        "$ref": "#/$defs/ActionOptionInput"
      },
      "type": "array",
      "maxItems": 3,
      "title": "Options"
    },
    "interaction": {
      "anyOf": [
        {
          "oneOf": [
            {
              "$ref": "#/$defs/BooleanInteraction"
            },
            {
              "$ref": "#/$defs/SingleChoiceInteraction"
            },
            {
              "$ref": "#/$defs/MultiChoiceInteraction"
            },
            {
              "$ref": "#/$defs/TextInteraction"
            },
            {
              "$ref": "#/$defs/IntegerInteraction"
            },
            {
              "$ref": "#/$defs/NumberInteraction"
            },
            {
              "$ref": "#/$defs/RatingInteraction"
            },
            {
              "$ref": "#/$defs/FormInteraction"
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "title": "Interaction"
    },
    "metadata": {
      "additionalProperties": true,
      "type": "object",
      "title": "Metadata"
    },
    "visibility": {
      "type": "string",
      "enum": [
        "workspace",
        "restricted"
      ],
      "title": "Visibility",
      "default": "workspace"
    },
    "reviewer_user_ids": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 15,
      "title": "Reviewer User Ids"
    },
    "reviewer_emails": {
      "items": {
        "type": "string"
      },
      "type": "array",
      "maxItems": 15,
      "title": "Reviewer Emails"
    },
    "approval_policy": {
      "anyOf": [
        {
          "$ref": "#/$defs/ApprovalPolicy"
        },
        {
          "type": "null"
        }
      ]
    },
    "assignee_user_id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64
        },
        {
          "type": "null"
        }
      ],
      "title": "Assignee User Id"
    },
    "assignee_email": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 320,
          "minLength": 3
        },
        {
          "type": "null"
        }
      ],
      "title": "Assignee Email"
    },
    "run_id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 64,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Run Id"
    }
  },
  "type": "object",
  "required": [
    "title"
  ],
  "$defs": {
    "ActionControl": {
      "properties": {
        "key": {
          "type": "string",
          "maxLength": 64,
          "minLength": 1,
          "pattern": "^[a-z][a-z0-9_-]*$",
          "title": "Key"
        },
        "label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "Label"
        },
        "kind": {
          "type": "string",
          "enum": [
            "callback",
            "link",
            "actionbox"
          ],
          "title": "Kind"
        },
        "url": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2048,
              "minLength": 1,
              "format": "uri"
            },
            {
              "type": "null"
            }
          ],
          "title": "Url"
        },
        "destructive": {
          "type": "boolean",
          "title": "Destructive",
          "default": false
        },
        "expires_at": {
          "anyOf": [
            {
              "type": "string",
              "format": "date-time"
            },
            {
              "type": "null"
            }
          ],
          "title": "Expires At"
        }
      },
      "type": "object",
      "required": [
        "key",
        "label",
        "kind"
      ],
      "title": "ActionControl",
      "description": "A bounded secondary operation exposed beside an Action's decision."
    },
    "ActionOptionInput": {
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "Label"
        },
        "style": {
          "$ref": "#/$defs/OptionStyle",
          "default": "default"
        }
      },
      "type": "object",
      "required": [
        "id",
        "label"
      ],
      "title": "ActionOptionInput"
    },
    "ApprovalPolicy": {
      "properties": {
        "schema_version": {
          "type": "integer",
          "const": 1,
          "title": "Schema Version",
          "default": 1
        },
        "mode": {
          "type": "string",
          "enum": [
            "any",
            "all",
            "quorum"
          ],
          "title": "Mode"
        },
        "required_approvals": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 15.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Required Approvals"
        },
        "approval_option_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Approval Option Id"
        },
        "rejection_option_id": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80,
              "minLength": 1
            },
            {
              "type": "null"
            }
          ],
          "title": "Rejection Option Id"
        },
        "allow_source_override": {
          "type": "boolean",
          "title": "Allow Source Override",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "mode"
      ],
      "title": "ApprovalPolicy"
    },
    "BooleanInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "boolean",
          "title": "Type"
        },
        "true_label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "True Label",
          "default": "Yes"
        },
        "false_label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "False Label",
          "default": "No"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "title": "BooleanInteraction"
    },
    "BooleanResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "boolean",
          "title": "Type"
        },
        "value": {
          "type": "boolean",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "BooleanResponse"
    },
    "DecisionContext": {
      "properties": {
        "schema_version": {
          "type": "integer",
          "const": 1,
          "title": "Schema Version",
          "default": 1
        },
        "reason": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Reason"
        },
        "current_state": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ],
          "title": "Current State"
        },
        "proposed_change": {
          "type": "string",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Proposed Change"
        },
        "expected_effect": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ],
          "title": "Expected Effect"
        },
        "risk_level": {
          "type": "string",
          "enum": [
            "unknown",
            "low",
            "medium",
            "high",
            "critical"
          ],
          "title": "Risk Level"
        },
        "risk_summary": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ],
          "title": "Risk Summary"
        },
        "reversibility": {
          "type": "string",
          "enum": [
            "unknown",
            "reversible",
            "partially_reversible",
            "irreversible"
          ],
          "title": "Reversibility"
        },
        "rollback_plan": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 2000
            },
            {
              "type": "null"
            }
          ],
          "title": "Rollback Plan"
        },
        "affected_scope": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "maxItems": 20,
          "title": "Affected Scope"
        }
      },
      "type": "object",
      "required": [
        "reason",
        "proposed_change",
        "risk_level",
        "reversibility"
      ],
      "title": "DecisionContext"
    },
    "FormBooleanField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "boolean",
          "title": "Type"
        },
        "true_label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "True Label",
          "default": "Yes"
        },
        "false_label": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "False Label",
          "default": "No"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "id"
      ],
      "title": "FormBooleanField"
    },
    "FormIntegerField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "integer",
          "title": "Type"
        },
        "min": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max"
        },
        "step": {
          "type": "integer",
          "maximum": 2000000000.0,
          "minimum": 1.0,
          "title": "Step",
          "default": 1
        },
        "unit": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "id"
      ],
      "title": "FormIntegerField"
    },
    "FormInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "form",
          "title": "Type"
        },
        "fields": {
          "items": {
            "oneOf": [
              {
                "$ref": "#/$defs/FormBooleanField"
              },
              {
                "$ref": "#/$defs/FormSingleChoiceField"
              },
              {
                "$ref": "#/$defs/FormMultiChoiceField"
              },
              {
                "$ref": "#/$defs/FormTextField"
              },
              {
                "$ref": "#/$defs/FormIntegerField"
              },
              {
                "$ref": "#/$defs/FormNumberField"
              },
              {
                "$ref": "#/$defs/FormRatingField"
              }
            ]
          },
          "type": "array",
          "maxItems": 12,
          "minItems": 1,
          "title": "Fields"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "fields"
      ],
      "title": "FormInteraction"
    },
    "FormMultiChoiceField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "multi_choice",
          "title": "Type"
        },
        "options": {
          "items": {
            "$ref": "#/$defs/ActionOptionInput"
          },
          "type": "array",
          "maxItems": 50,
          "minItems": 1,
          "title": "Options"
        },
        "min_selections": {
          "type": "integer",
          "maximum": 50.0,
          "minimum": 0.0,
          "title": "Min Selections",
          "default": 0
        },
        "max_selections": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 50.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Max Selections"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "options",
        "id"
      ],
      "title": "FormMultiChoiceField"
    },
    "FormNumberField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "number",
          "title": "Type"
        },
        "min": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max"
        },
        "step": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            }
          ],
          "title": "Step",
          "default": 1,
          "gt": 0
        },
        "unit": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "id"
      ],
      "title": "FormNumberField"
    },
    "FormRatingField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "rating",
          "title": "Type"
        },
        "min": {
          "type": "integer",
          "maximum": 9.0,
          "minimum": 0.0,
          "title": "Min",
          "default": 1
        },
        "max": {
          "type": "integer",
          "maximum": 10.0,
          "minimum": 1.0,
          "title": "Max",
          "default": 5
        },
        "low_label": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80
            },
            {
              "type": "null"
            }
          ],
          "title": "Low Label"
        },
        "high_label": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80
            },
            {
              "type": "null"
            }
          ],
          "title": "High Label"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "id"
      ],
      "title": "FormRatingField"
    },
    "FormResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "form",
          "title": "Type"
        },
        "values": {
          "additionalProperties": true,
          "type": "object",
          "title": "Values"
        }
      },
      "type": "object",
      "required": [
        "type",
        "values"
      ],
      "title": "FormResponse"
    },
    "FormSingleChoiceField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "single_choice",
          "title": "Type"
        },
        "options": {
          "items": {
            "$ref": "#/$defs/ActionOptionInput"
          },
          "type": "array",
          "maxItems": 50,
          "minItems": 1,
          "title": "Options"
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "options",
        "id"
      ],
      "title": "FormSingleChoiceField"
    },
    "FormTextField": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "text",
          "title": "Type"
        },
        "placeholder": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ],
          "title": "Placeholder"
        },
        "multiline": {
          "type": "boolean",
          "title": "Multiline",
          "default": false
        },
        "min_length": {
          "type": "integer",
          "maximum": 2000.0,
          "minimum": 0.0,
          "title": "Min Length",
          "default": 0
        },
        "max_length": {
          "type": "integer",
          "maximum": 2000.0,
          "minimum": 0.0,
          "title": "Max Length",
          "default": 2000
        },
        "id": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "pattern": "^[a-zA-Z0-9_-]+$",
          "title": "Id"
        },
        "required": {
          "type": "boolean",
          "title": "Required",
          "default": true
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "id"
      ],
      "title": "FormTextField"
    },
    "IntegerInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "integer",
          "title": "Type"
        },
        "min": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max"
        },
        "step": {
          "type": "integer",
          "maximum": 2000000000.0,
          "minimum": 1.0,
          "title": "Step",
          "default": 1
        },
        "unit": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "title": "IntegerInteraction"
    },
    "IntegerResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "integer",
          "title": "Type"
        },
        "value": {
          "type": "integer",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "IntegerResponse"
    },
    "JsonContext": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "type": {
          "type": "string",
          "const": "json",
          "title": "Type"
        },
        "value": {
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "JsonContext"
    },
    "KeyValueContext": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "type": {
          "type": "string",
          "const": "key_value",
          "title": "Type"
        },
        "items": {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": "object",
          "maxProperties": 50,
          "minProperties": 1,
          "title": "Items"
        }
      },
      "type": "object",
      "required": [
        "type",
        "items"
      ],
      "title": "KeyValueContext"
    },
    "LinkItem": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "title": "Label"
        },
        "url": {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1,
          "format": "uri",
          "title": "Url"
        }
      },
      "type": "object",
      "required": [
        "label",
        "url"
      ],
      "title": "LinkItem"
    },
    "LinksContext": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "type": {
          "type": "string",
          "const": "links",
          "title": "Type"
        },
        "items": {
          "items": {
            "$ref": "#/$defs/LinkItem"
          },
          "type": "array",
          "maxItems": 20,
          "minItems": 1,
          "title": "Items"
        }
      },
      "type": "object",
      "required": [
        "type",
        "items"
      ],
      "title": "LinksContext"
    },
    "MetricItem": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "title": "Label"
        },
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "integer"
            },
            {
              "type": "number"
            }
          ],
          "title": "Value"
        },
        "unit": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit"
        }
      },
      "type": "object",
      "required": [
        "label",
        "value"
      ],
      "title": "MetricItem"
    },
    "MetricsContext": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "type": {
          "type": "string",
          "const": "metrics",
          "title": "Type"
        },
        "items": {
          "items": {
            "$ref": "#/$defs/MetricItem"
          },
          "type": "array",
          "maxItems": 20,
          "minItems": 1,
          "title": "Items"
        }
      },
      "type": "object",
      "required": [
        "type",
        "items"
      ],
      "title": "MetricsContext"
    },
    "MultiChoiceInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "multi_choice",
          "title": "Type"
        },
        "options": {
          "items": {
            "$ref": "#/$defs/ActionOptionInput"
          },
          "type": "array",
          "maxItems": 50,
          "minItems": 1,
          "title": "Options"
        },
        "min_selections": {
          "type": "integer",
          "maximum": 50.0,
          "minimum": 0.0,
          "title": "Min Selections",
          "default": 0
        },
        "max_selections": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 50.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Max Selections"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "options"
      ],
      "title": "MultiChoiceInteraction"
    },
    "MultiChoiceResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "multi_choice",
          "title": "Type"
        },
        "value": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "MultiChoiceResponse"
    },
    "NumberInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "number",
          "title": "Type"
        },
        "min": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Min"
        },
        "max": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "title": "Max"
        },
        "step": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            }
          ],
          "title": "Step",
          "default": 1,
          "gt": 0
        },
        "unit": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Unit"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "title": "NumberInteraction"
    },
    "NumberResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "number",
          "title": "Type"
        },
        "value": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "number"
            }
          ],
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "NumberResponse"
    },
    "OptionStyle": {
      "type": "string",
      "enum": [
        "default",
        "primary",
        "destructive"
      ],
      "title": "OptionStyle"
    },
    "Priority": {
      "type": "string",
      "enum": [
        "low",
        "normal",
        "high",
        "urgent"
      ],
      "title": "Priority"
    },
    "RatingInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "rating",
          "title": "Type"
        },
        "min": {
          "type": "integer",
          "maximum": 9.0,
          "minimum": 0.0,
          "title": "Min",
          "default": 1
        },
        "max": {
          "type": "integer",
          "maximum": 10.0,
          "minimum": 1.0,
          "title": "Max",
          "default": 5
        },
        "low_label": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80
            },
            {
              "type": "null"
            }
          ],
          "title": "Low Label"
        },
        "high_label": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 80
            },
            {
              "type": "null"
            }
          ],
          "title": "High Label"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "title": "RatingInteraction"
    },
    "RatingResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "rating",
          "title": "Type"
        },
        "value": {
          "type": "integer",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "RatingResponse"
    },
    "ResolveOnExpireOutcome": {
      "properties": {
        "type": {
          "type": "string",
          "const": "resolve",
          "title": "Type"
        },
        "response": {
          "oneOf": [
            {
              "$ref": "#/$defs/BooleanResponse"
            },
            {
              "$ref": "#/$defs/TextResponse"
            },
            {
              "$ref": "#/$defs/IntegerResponse"
            },
            {
              "$ref": "#/$defs/NumberResponse"
            },
            {
              "$ref": "#/$defs/RatingResponse"
            },
            {
              "$ref": "#/$defs/SingleChoiceResponse"
            },
            {
              "$ref": "#/$defs/MultiChoiceResponse"
            },
            {
              "$ref": "#/$defs/FormResponse"
            }
          ],
          "title": "Response"
        },
        "reason": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 500
            },
            {
              "type": "null"
            }
          ],
          "title": "Reason",
          "default": "expiration fallback"
        }
      },
      "type": "object",
      "required": [
        "type",
        "response"
      ],
      "title": "ResolveOnExpireOutcome"
    },
    "ReturnExpiredOutcome": {
      "properties": {
        "type": {
          "type": "string",
          "const": "return_expired",
          "title": "Type",
          "default": "return_expired"
        }
      },
      "type": "object",
      "title": "ReturnExpiredOutcome"
    },
    "SingleChoiceInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "single_choice",
          "title": "Type"
        },
        "options": {
          "items": {
            "$ref": "#/$defs/ActionOptionInput"
          },
          "type": "array",
          "maxItems": 50,
          "minItems": 1,
          "title": "Options"
        }
      },
      "type": "object",
      "required": [
        "label",
        "type",
        "options"
      ],
      "title": "SingleChoiceInteraction"
    },
    "SingleChoiceResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "single_choice",
          "title": "Type"
        },
        "value": {
          "type": "string",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "SingleChoiceResponse"
    },
    "TextInteraction": {
      "properties": {
        "label": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "Label"
        },
        "type": {
          "type": "string",
          "const": "text",
          "title": "Type"
        },
        "placeholder": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 200
            },
            {
              "type": "null"
            }
          ],
          "title": "Placeholder"
        },
        "multiline": {
          "type": "boolean",
          "title": "Multiline",
          "default": false
        },
        "min_length": {
          "type": "integer",
          "maximum": 2000.0,
          "minimum": 0.0,
          "title": "Min Length",
          "default": 0
        },
        "max_length": {
          "type": "integer",
          "maximum": 2000.0,
          "minimum": 0.0,
          "title": "Max Length",
          "default": 2000
        }
      },
      "type": "object",
      "required": [
        "label",
        "type"
      ],
      "title": "TextInteraction"
    },
    "TextResponse": {
      "properties": {
        "type": {
          "type": "string",
          "const": "text",
          "title": "Type"
        },
        "value": {
          "type": "string",
          "title": "Value"
        }
      },
      "type": "object",
      "required": [
        "type",
        "value"
      ],
      "title": "TextResponse"
    },
    "TextualContext": {
      "properties": {
        "title": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 120
            },
            {
              "type": "null"
            }
          ],
          "title": "Title"
        },
        "type": {
          "type": "string",
          "enum": [
            "code",
            "diff",
            "logs",
            "command"
          ],
          "title": "Type"
        },
        "content": {
          "type": "string",
          "maxLength": 20000,
          "minLength": 1,
          "title": "Content"
        },
        "language": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 40
            },
            {
              "type": "null"
            }
          ],
          "title": "Language"
        }
      },
      "type": "object",
      "required": [
        "type",
        "content"
      ],
      "title": "TextualContext"
    }
  }
}