{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cnvs-app/json-schema/cnvs-app-task-schema.json",
  "title": "Task",
  "description": "A kanban task (card) on a `todo`-mode board.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cnvs-app-openapi.yml#/components/schemas/Task",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "column_id": {
      "type": "string",
      "description": "Column the card currently lives in."
    },
    "name": {
      "type": "string",
      "description": "Card title."
    },
    "content": {
      "type": [
        "string",
        "null"
      ],
      "description": "Opaque JSON string blob, e.g. `{\"description\":...}`. Treat as a blob — do not parse application meaning out of it. Max 20 000 chars."
    },
    "due_date": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 8601 due date, or null."
    },
    "priority": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "H",
        "M",
        "L",
        null
      ],
      "description": "High / Medium / Low, or null."
    },
    "assignee": {
      "type": [
        "string",
        "null"
      ]
    },
    "done": {
      "type": "boolean",
      "description": "Whether the task is completed (checked off). Defaults to false."
    },
    "sort": {
      "type": "number",
      "description": "Order within the column."
    },
    "author": {
      "type": [
        "string",
        "null"
      ]
    },
    "last_updated": {
      "type": "string",
      "description": "UTC timestamp."
    }
  },
  "required": [
    "id",
    "column_id",
    "name"
  ]
}