{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/site_requisitions/v1.json",
  "title": "site_requisitions contract v1",
  "type": "object",
  "required": [
    "external_id",
    "occurred_at",
    "worker"
  ],
  "properties": {
    "worker": {
      "type": "number",
      "description": "the worker the requisition is attributed to",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "form_id": {
      "type": "integer",
      "description": "which Assignar requisition form template produced the row — provenance for a title-pattern match that can sweep renamed forms",
      "x-demiton-requiredness": "optional"
    },
    "project": {
      "type": "number",
      "description": "the project the request serves, when the form captured it",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "comments": {
      "type": "string",
      "description": "free-text note from the requester",
      "x-demiton-requiredness": "optional"
    },
    "external_id": {
      "type": "string",
      "description": "Assignar form-result id; substrate source identity and idempotency key",
      "x-demiton-requiredness": "required"
    },
    "occurred_at": {
      "type": "string",
      "description": "submission time of the requisition — the episodic event time",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "project_task": {
      "type": "string",
      "description": "the project task/activity the request is for",
      "x-demiton-requiredness": "optional"
    },
    "site_address": {
      "type": "string",
      "description": "the site address, where distinct from the delivery address",
      "x-demiton-requiredness": "optional"
    },
    "date_required": {
      "type": "string",
      "description": "the date the requested items are needed on site",
      "x-demiton-requiredness": "optional",
      "format": "date",
      "x-demiton-type": "date"
    },
    "date_of_request": {
      "type": "string",
      "description": "the date the requester raised the request",
      "x-demiton-requiredness": "optional",
      "format": "date",
      "x-demiton-type": "date"
    },
    "requested_items": {
      "type": "array",
      "description": "the plant/equipment and staff the requisition asks for, as an itemised list rather than one top-level key per named person or machine",
      "x-demiton-requiredness": "tenant-specific"
    },
    "custom_questions": {
      "type": "object",
      "description": "the residual tenant form answers, including the form's own approval/authorisation answers",
      "x-demiton-requiredness": "tenant-specific"
    },
    "delivery_address": {
      "type": "string",
      "description": "where the requested items are to be delivered",
      "x-demiton-requiredness": "optional"
    },
    "financial_period": {
      "type": "string",
      "description": "the accounting period the request falls in; a declared coordinate, not present in the source payload",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "source_modified_at": {
      "type": "string",
      "description": "last modification at source; the form_pattern delta cursor",
      "x-demiton-requiredness": "optional",
      "format": "date-time",
      "x-demiton-type": "datetime"
    }
  },
  "x-demiton-register-type": "site_requisitions",
  "x-demiton-contract-version": "1.0.1",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [
    {
      "axis": "project",
      "requirement": "optional",
      "role": "subject"
    },
    {
      "axis": "worker",
      "requirement": "required",
      "role": "subject"
    },
    {
      "axis": "financial_period",
      "requirement": "optional",
      "role": "context"
    }
  ],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "Site requisitions for materials, plant or resources, by worker and project.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/site_requisitions/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}