{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/clipform-io/json-schema/clipform-io-form-variable-schema.json",
  "title": "FormVariable",
  "description": "One row of a form's stable variable registry (#4173) - a category or custom scoring variable a conditional branch can route on by its stable id instead of a mutable name. Built-in variables (score, max_score) are reserved keys resolved specially and never appear here.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/clipform-io-openapi.yml#/components/schemas/FormVariable",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "maxLength": 36
    },
    "key": {
      "type": "string",
      "description": "Immutable internal identifier, frozen at creation. Never rewritten - a rename only edits `label`.",
      "maxLength": 200
    },
    "label": {
      "type": "string",
      "description": "Editable display name.",
      "maxLength": 200
    },
    "type": {
      "type": "string",
      "enum": [
        "number",
        "text"
      ]
    },
    "kind": {
      "type": "string",
      "enum": [
        "builtin",
        "category",
        "custom"
      ]
    }
  }
}