{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/harktech-co-uk/json-schema/harktech-co-uk-quote-schema.json",
  "title": "Quote",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/harktech-co-uk-openapi.json#/components/schemas/Quote",
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean"
    },
    "summary": {
      "type": "string",
      "description": "One plain-English sentence suitable to repeat to the person."
    },
    "reason": {
      "type": "string",
      "description": "When available=false, e.g. personal_use_licence, licence_excluded, busy, too_big."
    },
    "message": {
      "type": "string"
    },
    "model": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "designer": {
          "type": "string"
        },
        "source_url": {
          "type": "string"
        },
        "page_url": {
          "type": "string"
        },
        "licence": {
          "type": "string"
        }
      }
    },
    "material": {
      "type": "string"
    },
    "material_name": {
      "type": "string"
    },
    "price_single_copy_gbp": {
      "type": "number",
      "description": "Price for one copy ordered on its own."
    },
    "at_order_minimum": {
      "type": "boolean",
      "description": "True when that price is the order minimum (small part): extra copies or other small parts share it, so do not multiply by quantity. Small PLA and PETG parts use the lower small-part minimum, see order_minimum_gbp and small_part_price."
    },
    "order_minimum_gbp": {
      "type": "number"
    },
    "priced_file": {
      "type": "string"
    },
    "price_basis": {
      "type": "string"
    },
    "quantity_requested": {
      "type": "integer"
    },
    "quantity_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "other_materials_gbp": {
      "type": "object",
      "additionalProperties": {
        "type": "number"
      }
    },
    "batch_discounts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "min_copies": {
            "type": "integer"
          },
          "discount_pct": {
            "type": "integer"
          }
        }
      }
    },
    "lead_times": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "postage": {
      "type": "object"
    },
    "order_url": {
      "type": "string",
      "description": "Give this link to the person to review options and pay on harktech.co.uk."
    },
    "retry_after_seconds": {
      "type": "integer"
    },
    "currency": {
      "type": "string",
      "const": "GBP"
    }
  }
}