{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://packrift-benchmark-navigator.vercel.app/data/packingsolver-fixtures/schemas/fixture_orders.schema.json",
  "title": "Packrift Fixture Orders CSV row schema",
  "description": "Generated scenario order-line records for parser and converter tests. These are not customer orders. This schema validates JSON objects produced by parsing the CSV row as strings.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "order_id",
    "scenario_family",
    "scenario_note",
    "target_carton_sku",
    "target_carton_title",
    "item_sku",
    "item_title",
    "item_family",
    "item_length_in",
    "item_width_in",
    "item_height_in",
    "item_count",
    "estimated_item_volume_cuin",
    "source_product_url",
    "source_basis"
  ],
  "properties": {
    "order_id": {
      "type": "string",
      "description": "Generated scenario identifier.",
      "pattern": "^packrift-20260531-\\d{4}-[a-z0-9-]+$"
    },
    "scenario_family": {
      "type": "string",
      "description": "Generated review scenario family.",
      "enum": [
        "apparel-return",
        "beauty-sampler",
        "book-media",
        "bulk-lightweight",
        "electronics-accessory",
        "home-goods-small",
        "marketplace-replacement",
        "sample-kit",
        "subscription-bundle",
        "warehouse-restock"
      ]
    },
    "scenario_note": {
      "type": "string",
      "description": "Plain-English scenario description."
    },
    "target_carton_sku": {
      "type": "string",
      "description": "Scenario anchor carton SKU, not an optimal solution claim."
    },
    "target_carton_title": {
      "type": "string",
      "description": "Target carton public title."
    },
    "item_sku": {
      "type": "string",
      "description": "Packrift source item SKU."
    },
    "item_title": {
      "type": "string",
      "description": "Public item title used for review."
    },
    "item_family": {
      "type": "string",
      "description": "Source item family.",
      "enum": [
        "boxes",
        "mailers"
      ]
    },
    "item_length_in": {
      "type": "string",
      "description": "Parsed item length in inches.",
      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
    },
    "item_width_in": {
      "type": "string",
      "description": "Parsed item width in inches.",
      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
    },
    "item_height_in": {
      "type": "string",
      "description": "Parsed item height in inches.",
      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
    },
    "item_count": {
      "type": "string",
      "description": "Generated item quantity for the scenario line.",
      "pattern": "^(?:0|[1-9][0-9]*)$"
    },
    "estimated_item_volume_cuin": {
      "type": "string",
      "description": "Line-level estimated cube in cubic inches.",
      "pattern": "^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"
    },
    "source_product_url": {
      "type": "string",
      "description": "Public Packrift product URL used as source evidence.",
      "format": "uri"
    },
    "source_basis": {
      "type": "string",
      "description": "Boundary statement for source and scenario generation."
    }
  }
}
