{
  "type": "object",
  "title": "Package",
  "description": "A Package is a physical unit of goods prepared for transport within a shipment. Maps to beckn:Item. ",
  "required": [
    "id",
    "weight"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the package",
      "example": "PKG-001"
    },
    "description": {
      "type": "string",
      "description": "Description of package contents",
      "example": "Electronics - Laptop"
    },
    "weight": {
      "type": "object",
      "description": "Weight of the package",
      "properties": {
        "value": {
          "type": "number",
          "example": 2.5
        },
        "unit": {
          "type": "string",
          "enum": [
            "kg",
            "g",
            "lb"
          ],
          "example": "kg"
        }
      }
    },
    "dimensions": {
      "type": "object",
      "description": "Physical dimensions of the package",
      "properties": {
        "length": {
          "type": "number",
          "example": 40
        },
        "width": {
          "type": "number",
          "example": 30
        },
        "height": {
          "type": "number",
          "example": 10
        },
        "unit": {
          "type": "string",
          "enum": [
            "cm",
            "in"
          ],
          "example": "cm"
        }
      }
    },
    "volumetricWeight": {
      "type": "number",
      "description": "Calculated volumetric weight in kg",
      "example": 3.0
    },
    "fragile": {
      "type": "boolean",
      "description": "Whether the package requires fragile handling",
      "example": false
    },
    "hazardous": {
      "type": "boolean",
      "description": "Whether the package contains hazardous materials",
      "example": false
    },
    "declaredValue": {
      "type": "object",
      "description": "Declared monetary value of contents",
      "properties": {
        "amount": {
          "type": "number",
          "example": 50000
        },
        "currency": {
          "type": "string",
          "example": "INR"
        }
      }
    },
    "packageType": {
      "type": "string",
      "description": "Type of packaging",
      "enum": [
        "BOX",
        "ENVELOPE",
        "PALLET",
        "DRUM",
        "BAG",
        "TUBE"
      ],
      "example": "BOX"
    },
    "barcode": {
      "type": "string",
      "description": "Package-level barcode or QR code",
      "example": "4012345678901"
    },
    "temperatureControl": {
      "type": "object",
      "description": "Temperature control requirements for cold chain",
      "properties": {
        "required": {
          "type": "boolean",
          "example": false
        },
        "minTemp": {
          "type": "number",
          "example": 2
        },
        "maxTemp": {
          "type": "number",
          "example": 8
        },
        "unit": {
          "type": "string",
          "enum": [
            "C",
            "F"
          ],
          "example": "C"
        }
      }
    },
    "insuranceRequired": {
      "type": "boolean",
      "description": "Whether insurance is required for this package",
      "example": false
    }
  },
  "$id": "https://schema.nfh.global/Package/v2.0",
  "x-iri": "https://schema.nfh.global/Package/v2.0",
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
