{
  "template_name": "Shared equipment register, checkout, return, maintenance",
  "version": 1,
  "equipment_fields": [
    {
      "name": "equipment_id",
      "type": "stable_id",
      "required": true,
      "immutable": true
    },
    {
      "name": "serial_number",
      "type": "text",
      "required": false
    },
    {
      "name": "name",
      "type": "text",
      "required": true
    },
    {
      "name": "category",
      "type": "select",
      "required": true
    },
    {
      "name": "model",
      "type": "text"
    },
    {
      "name": "home_location",
      "type": "text"
    },
    {
      "name": "active",
      "type": "boolean",
      "required": true
    }
  ],
  "checkout_fields": [
    {
      "name": "equipment_id",
      "type": "equipment_reference",
      "required": true
    },
    {
      "name": "borrower_id",
      "type": "person_reference",
      "required": true
    },
    {
      "name": "checked_out_at",
      "type": "datetime",
      "required": true
    },
    {
      "name": "due_at",
      "type": "datetime",
      "required": true
    },
    {
      "name": "checkout_condition",
      "type": "enum",
      "values": [
        "good",
        "worn",
        "damaged"
      ],
      "required": true
    }
  ],
  "return_fields": [
    {
      "name": "loan_id",
      "type": "open_loan_reference",
      "required": true
    },
    {
      "name": "returned_at",
      "type": "datetime",
      "required": true
    },
    {
      "name": "return_condition",
      "type": "enum",
      "values": [
        "good",
        "worn",
        "damaged"
      ],
      "required": true
    },
    {
      "name": "return_notes",
      "type": "textarea"
    }
  ],
  "maintenance_fields": [
    {
      "name": "event_id",
      "type": "stable_id",
      "required": true
    },
    {
      "name": "equipment_id",
      "type": "equipment_reference",
      "required": true
    },
    {
      "name": "reported_at",
      "type": "datetime",
      "required": true
    },
    {
      "name": "issue",
      "type": "textarea",
      "required": true
    },
    {
      "name": "status",
      "type": "enum",
      "values": [
        "reported",
        "in_progress",
        "completed"
      ],
      "required": true
    },
    {
      "name": "technician_id",
      "type": "person_reference"
    },
    {
      "name": "work_performed",
      "type": "textarea"
    },
    {
      "name": "completed_at",
      "type": "datetime"
    },
    {
      "name": "next_inspection_at",
      "type": "date"
    }
  ],
  "rules": [
    "One current open loan per equipment_id",
    "Blocking maintenance status prevents checkout",
    "Availability is derived from active status, open loan, and maintenance state"
  ]
}
