{
  "version": "2.0-draft",
  "constraints": [
    {
      "code": "max-cost",
      "name": "Maximum expected cost",
      "valueType": "numeric",
      "unitOrReference": "USD or native currency"
    },
    {
      "code": "max-latency",
      "name": "Maximum acceptable latency",
      "valueType": "numeric",
      "unitOrReference": "milliseconds/seconds"
    },
    {
      "code": "min-context",
      "name": "Minimum context window",
      "valueType": "numeric",
      "unitOrReference": "tokens"
    },
    {
      "code": "min-output",
      "name": "Minimum maximum-output allowance",
      "valueType": "numeric",
      "unitOrReference": "tokens"
    },
    {
      "code": "required-modality",
      "name": "Required input/output modality",
      "valueType": "enum",
      "unitOrReference": "modality"
    },
    {
      "code": "required-capability",
      "name": "Required capability",
      "valueType": "reference",
      "unitOrReference": "capability"
    },
    {
      "code": "forbidden-capability",
      "name": "Forbidden capability",
      "valueType": "reference",
      "unitOrReference": "capability"
    },
    {
      "code": "api-required",
      "name": "API access required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "self-host-required",
      "name": "Self-hosting required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "local-required",
      "name": "Local/offline operation required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "open-weights-required",
      "name": "Open weights required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "commercial-license-required",
      "name": "Commercial-use license required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "region-required",
      "name": "Required geography/region",
      "valueType": "reference",
      "unitOrReference": "region"
    },
    {
      "code": "data-residency-required",
      "name": "Required data residency",
      "valueType": "reference",
      "unitOrReference": "region"
    },
    {
      "code": "zero-retention-required",
      "name": "Zero-data-retention required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "no-training-on-data",
      "name": "Provider must not train on submitted data",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "compliance-required",
      "name": "Compliance/certification requirement",
      "valueType": "reference",
      "unitOrReference": "compliance"
    },
    {
      "code": "cloud-required",
      "name": "Required cloud/provider",
      "valueType": "reference",
      "unitOrReference": "deployment"
    },
    {
      "code": "integration-required",
      "name": "Required integration",
      "valueType": "reference",
      "unitOrReference": "integration"
    },
    {
      "code": "streaming-required",
      "name": "Streaming required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "batch-required",
      "name": "Batch processing required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "structured-output-required",
      "name": "Structured output required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "tool-use-required",
      "name": "Tool/function calling required",
      "valueType": "boolean",
      "unitOrReference": ""
    },
    {
      "code": "freshness-max-age",
      "name": "Maximum age of supporting evidence",
      "valueType": "numeric",
      "unitOrReference": "days"
    },
    {
      "code": "min-evidence-confidence",
      "name": "Minimum evidence confidence",
      "valueType": "numeric",
      "unitOrReference": "0-1"
    },
    {
      "code": "lifecycle-allowed",
      "name": "Allowed lifecycle states",
      "valueType": "array",
      "unitOrReference": "lifecycle states"
    }
  ]
}