{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/craaft-io/json-schema/craaft-io-board-template-schema.json",
  "title": "BoardTemplate",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/craaft-io-board-templates-api-openapi.yml#/components/schemas/BoardTemplate",
  "type": "object",
  "required": [
    "key",
    "name",
    "description",
    "columns"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Unique identifier for the template (e.g. 'kanban', 'sprint')"
    },
    "name": {
      "type": "string",
      "description": "Display name"
    },
    "description": {
      "type": "string",
      "description": "What this template is designed for"
    },
    "columns": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/BoardTemplateColumn"
      }
    }
  },
  "$defs": {
    "BoardTemplateColumn": {
      "type": "object",
      "required": [
        "title",
        "isDone",
        "color"
      ],
      "properties": {
        "title": {
          "type": "string"
        },
        "isDone": {
          "type": "boolean",
          "description": "Whether cards in this column are considered complete"
        },
        "color": {
          "type": "string",
          "description": "Optional palette token (e.g. 'green', 'purple'); empty string for default"
        }
      }
    }
  }
}