let status_type   = [| 'Open, 'InProgress, 'Done, 'Cancelled |] in
let priority_type = [| 'Critical, 'High, 'Medium, 'Low |] in
let kind_type     = [| 'Todo, 'Wish, 'Idea, 'Bug, 'Debt |] in
let graduate_type = [| 'Adr, 'Mode, 'StateTransition, 'PrItem |] in

let item_type = {
  id       | String,
  title    | String,
  kind     | kind_type,
  priority | priority_type | default = 'Medium,
  status   | status_type   | default = 'Open,
  detail   | String        | default = "",
  # Optional links to existing artifacts
  related_adrs   | Array String | default = [],
  related_modes  | Array String | default = [],
  related_dim    | String | optional,           # state.ncl dimension id
  # Graduation target — when this item is ready to be promoted
  graduates_to   | graduate_type | optional,
  # ISO date strings
  created  | String | default = "",
  updated  | String | default = "",
} in

{
  Status    = status_type,
  Priority  = priority_type,
  Kind      = kind_type,
  GraduateTo = graduate_type,
  Item      = item_type,
  BacklogConfig = {
    items | Array item_type,
  },
}
