{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "imports-v2/columns.json",
  "title": "Columns",
  "description": "A column of a board, such as Backlog or In review, or a sub-column inside another column. The `type` tells whether the cards in it are waiting, in progress or done. Cards refer to the column with `column_ref`, which must be a column of the card's board. Sub-columns point at their parent with `parent_column_ref` on the same board. Top-level columns stand on the board in the order of their records, and the sub-columns of a column in the order of theirs.",
  "type": "object",
  "properties": {
    "external_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "description": "Your own identifier of the record, for example `k-mrr`, unique within the resource across all of its files and case sensitive. Other records refer to this one by it. The import also keeps it as the external id of the object it creates."
    },
    "board_ref": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "x-ref": "boards",
      "description": "The board the column belongs to. Give the external_id of a `boards` record."
    },
    "parent_column_ref": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 512,
      "x-ref": "columns",
      "description": "The column this sub-column sits inside, for example `In progress` for the sub-columns `Doing` and `Review`. Give the external_id of a `columns` record on the same board; leave it out for a top-level column. A column cannot be inside itself, directly or through other columns."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "description": "Name of the column, for example `In review`. Up to 128 characters."
    },
    "type": {
      "type": "string",
      "enum": [
        "queued",
        "in_progress",
        "done"
      ],
      "description": "What the cards in this column count as: `queued` (not started), `in_progress` (being worked on) or `done` (finished). A card takes its state from its column: moving into a `done` column marks it completed and records when, and its first move into an `in_progress` column records when work started."
    },
    "wip_limit": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "The most cards the column should hold at the same time (its work-in-progress limit), at least 1. When the column holds more, the board highlights it. The limit counts cards, not their size; leave it out for no limit."
    }
  },
  "required": [
    "external_id",
    "board_ref",
    "title",
    "type"
  ],
  "additionalProperties": false
}
