{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/punch_list/v1.json",
  "title": "punch_list contract v1",
  "type": "object",
  "required": [
    "external_id",
    "name",
    "project",
    "status"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "the defect's short title",
      "x-demiton-requiredness": "required"
    },
    "trade": {
      "type": "string",
      "description": "the trade responsible for the fix",
      "x-demiton-requiredness": "optional"
    },
    "status": {
      "type": "string",
      "description": "the item's lifecycle state",
      "x-demiton-requiredness": "required"
    },
    "manager": {
      "type": "string",
      "description": "who manages the item",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "project": {
      "type": "string",
      "description": "the project the defect is on",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "assignee": {
      "type": "string",
      "description": "who must fix it",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "category": {
      "type": "string",
      "description": "the kind of defect",
      "x-demiton-requiredness": "optional"
    },
    "currency": {
      "type": "currency",
      "description": "the currency of `cost_impact_amount`, an ISO 4217 alpha-3 code as the source states it. A record with no currency has no usable amount.",
      "x-demiton-requiredness": "optional"
    },
    "due_date": {
      "type": "string",
      "description": "when the fix is due",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "day",
      "format": "date",
      "x-demiton-type": "date"
    },
    "location": {
      "type": "string",
      "description": "where on site the defect is",
      "x-demiton-requiredness": "optional"
    },
    "priority": {
      "type": "string",
      "description": "how urgent the fix is",
      "x-demiton-requiredness": "optional"
    },
    "closed_at": {
      "type": "string",
      "description": "when the item was closed",
      "x-demiton-requiredness": "optional",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "closed_by": {
      "type": "string",
      "description": "who closed it",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "cost_code": {
      "type": "string",
      "description": "the cost code the fix is charged to",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "raised_by": {
      "type": "string",
      "description": "who recorded the defect",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "description": {
      "type": "string",
      "description": "what is wrong",
      "x-demiton-requiredness": "optional"
    },
    "external_id": {
      "type": "string",
      "description": "the source system's own item id",
      "x-demiton-requiredness": "required"
    },
    "final_approver": {
      "type": "string",
      "description": "who signs the fix off",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "cost_impact_amount": {
      "type": "number",
      "description": "the cost the defect adds",
      "x-demiton-requiredness": "optional",
      "x-demiton-type": "money"
    },
    "schedule_impact_days": {
      "type": "integer",
      "description": "the programme slip the defect causes",
      "x-demiton-requiredness": "optional",
      "x-demiton-unit": "days"
    }
  },
  "x-demiton-register-type": "punch_list",
  "x-demiton-contract-version": "1.1.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "project",
      "requirement": "required",
      "role": "subject"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "AS/NZS ISO 9001:2016",
        "title": "Quality management systems - Requirements",
        "access": "paywalled_secondary",
        "clause": "8.7, 10.2",
        "region": "Australia",
        "edition": "2016 (adopts ISO 9001:2015)",
        "checked_on": "2026-09-14"
      },
      {
        "code": "ISO 9001:2015",
        "title": "Quality management systems - Requirements",
        "access": "paywalled_secondary",
        "clause": "8.7, 10.2",
        "region": "International",
        "edition": "2015 (ISO 9001:2026 successor expected; unverified)",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Completion defects to close out before handover.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/punch_list/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}