# Plan schema — typed metadata companion to a .plan.md file.
#
# Each .plan.md generated by the compose UI has a parallel
# .plan.ncl file conforming to this schema.
#
# Load example:
#   nickel export --format json 2026-03-12-new_adr.plan.ncl

let plan_status_type = [|
  'Draft,
  'Sent,
  'Accepted,
  'Executed,
  'Archived,
|] in

{
  Plan = {
    template       | String,
    date           | String,
    provider       | String | default = "",
    status         | plan_status_type | default = 'Draft,
    linked_backlog | Array String | default = [],
    linked_adrs    | Array String | default = [],
    fields         | { _ | String | Array String } | default = {},
    dag            | Array { id | String, label | String, mode | String | default = "manual", dag | String | default = "" } | default = [],
  },
}
