{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "imports-v2/card_children.json",
  "title": "Card children",
  "description": "A parent and child link between two cards, such as an epic and its task. Write one record per pair; the parent is `parent_card_ref`, the child is `child_card_ref`. The links must not form a cycle (a card cannot be its own ancestor). Write each pair once, from the parent side.",
  "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."
    },
    "parent_card_ref": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "x-ref": "cards",
      "description": "The parent card, for example an epic. Give the external_id of a `cards` record."
    },
    "child_card_ref": {
      "type": "string",
      "minLength": 1,
      "maxLength": 512,
      "x-ref": "cards",
      "description": "The child card, for example a task of the epic. Give the external_id of a `cards` record."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})$",
      "description": "When the child was linked to the parent, with a time zone, for example `2026-01-12T09:30:00Z`. Decides where the child appears on the parent card's chart: as part of the initial scope if linked before the chart starts, or as added work on the day it was linked.",
      "x-default-text": "source.exported_at of the manifest"
    }
  },
  "required": [
    "external_id",
    "parent_card_ref",
    "child_card_ref"
  ],
  "additionalProperties": false
}
