{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/implementation_request/v2.json",
  "title": "implementation_request contract v2",
  "type": "object",
  "required": [
    "hours_logs",
    "project_entity_id",
    "rate_per_hour",
    "register",
    "requested_at",
    "status"
  ],
  "properties": {
    "status": {
      "type": "string",
      "description": "open while the team works it; closed when done",
      "enum": [
        "open",
        "closed"
      ],
      "x-demiton-requiredness": "required"
    },
    "currency": {
      "type": "currency",
      "description": "the currency of every amount on this record (`rate_per_hour`), an ISO 4217 alpha-3 code as the source states it. A record with no currency has no usable amount.",
      "x-demiton-requiredness": "optional"
    },
    "register": {
      "type": "string",
      "description": "the register the implementation team is asked to fill, as a shelf_type",
      "x-demiton-requiredness": "required"
    },
    "hours_logs": {
      "type": "array",
      "description": "each block of hours the team logged: log_id, hours, amount_cents, invoice_item_id (null in dry-run), dry_run, logged_by_user_id, logged_at",
      "x-demiton-requiredness": "required"
    },
    "requested_at": {
      "type": "string",
      "description": "when the request was made",
      "x-demiton-requiredness": "required"
    },
    "rate_per_hour": {
      "type": "integer",
      "description": "the hourly rate shown when the customer asked (decision 10: AU$200)",
      "x-demiton-requiredness": "required"
    },
    "project_entity_id": {
      "type": "integer",
      "description": "the project whose screen the request was made from",
      "x-demiton-requiredness": "required"
    },
    "requested_by_user_id": {
      "type": "integer",
      "description": "the user who asked (Rule 1)",
      "x-demiton-requiredness": "optional"
    }
  },
  "x-demiton-register-type": "implementation_request",
  "x-demiton-contract-version": "2.0.0",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": []
  },
  "description": "The Implementation request register contract, version 2. JSON Schema (draft 2020-12); x-demiton-* keywords carry Demiton's own meaning and standard validators ignore them.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/implementation_request/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}