{
  "type": "object",
  "required": [
    "need"
  ],
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "buy",
        "source",
        "quote",
        "verify",
        "lease",
        "license",
        "hire",
        "retrieve",
        "convert",
        "other"
      ],
      "description": "What you want done"
    },
    "need": {
      "type": "string",
      "maxLength": 2000,
      "description": "The requirement in your own words"
    },
    "specifications": {
      "type": "object",
      "properties": {
        "material_class": {
          "type": "string",
          "enum": [
            "METAL",
            "POLYMER_RESIN",
            "CHEMICAL",
            "INDUSTRIAL_GAS",
            "MINERAL",
            "AGRICULTURAL_COMMODITY",
            "OTHER"
          ],
          "description": "Broad class of material",
          "x-facet": "specification"
        },
        "material": {
          "type": "string",
          "maxLength": 160,
          "description": "The material in your words",
          "x-facet": "specification"
        },
        "grade_or_standard": {
          "type": "string",
          "maxLength": 160,
          "description": "Grade, alloy, purity or standard (ASTM, ISO, CAS number)",
          "x-facet": "identifier"
        },
        "form": {
          "type": "string",
          "maxLength": 120,
          "description": "Form and packaging",
          "x-facet": "specification"
        },
        "volume": {
          "type": "number",
          "minimum": 0,
          "description": "How much",
          "x-facet": "quantity"
        },
        "volume_unit": {
          "type": "string",
          "maxLength": 40,
          "description": "Unit of the volume (lb, tonnes, gallons, cylinders, per month)",
          "x-facet": "quantity"
        },
        "delivery_point": {
          "type": "string",
          "maxLength": 160,
          "description": "Where it is delivered",
          "x-facet": "geography"
        },
        "incoterm": {
          "type": "string",
          "enum": [
            "EXW",
            "FCA",
            "FOB",
            "CFR",
            "CIF",
            "DAP",
            "DDP",
            "DELIVERED"
          ],
          "description": "Trade terms",
          "x-facet": "specification"
        },
        "supply_mode": {
          "type": "string",
          "enum": [
            "cylinder",
            "dewar",
            "microbulk",
            "bulk_tank",
            "pipeline",
            "bags_or_drums",
            "bulk_carrier",
            "other"
          ],
          "description": "How the material is delivered and held: cylinders, microbulk, a bulk tank, drums, bulk carrier",
          "x-facet": "specification"
        },
        "storage_equipment": {
          "type": "string",
          "enum": [
            "buyer_owns",
            "lease_from_supplier",
            "install_needed",
            "not_needed"
          ],
          "description": "Whether storage (a tank, silo, rack) is already on site or must be leased or installed",
          "x-facet": "specification"
        },
        "documentation_required": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 120
          },
          "maxItems": 10,
          "description": "Quality documents each delivery must carry, e.g. certificate of analysis, ISBT or FCC grade statement",
          "x-facet": "specification"
        }
      }
    },
    "quantity": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "unit": {
          "type": "string"
        },
        "per": {
          "type": "string"
        }
      }
    },
    "timing": {
      "type": "object",
      "properties": {
        "earliest": {
          "type": "string"
        },
        "latest": {
          "type": "string"
        },
        "recurrence": {
          "type": "string"
        },
        "text": {
          "type": "string"
        }
      }
    },
    "geography": {
      "type": "object",
      "properties": {
        "text": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "from": {
          "type": "string"
        },
        "to": {
          "type": "string"
        }
      }
    },
    "budget": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "currency": {
          "type": "string",
          "description": "ISO 4217, default USD"
        },
        "per": {
          "type": "string",
          "description": "total, unit, month, year, load, ..."
        }
      }
    },
    "requested_fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 30,
      "description": "Result fields you need"
    },
    "contact": {
      "type": "object",
      "description": "Optional; stored apart and deleted after 180 days",
      "properties": {
        "email": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "organization": {
          "type": "string"
        }
      }
    }
  }
}