{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://largequant.com/assets/largequant/spec/lqm-manifest-1.0.schema.json",
  "title": "LQM Manifest 1.0",
  "type": "object",
  "required": ["key", "version", "name", "family", "runtime", "input_schema", "output_schema"],
  "properties": {
    "key": {"type": "string", "minLength": 3},
    "version": {"type": "string", "minLength": 1},
    "name": {"type": "string", "minLength": 1},
    "family": {"type": "string", "minLength": 1},
    "description": {"type": "string"},
    "runtime": {"type": "string"},
    "implementation_sha256": {"type": ["string", "null"], "pattern": "^[a-f0-9]{64}$"},
    "input_schema": {"type": "object"},
    "output_schema": {"type": "object"},
    "default_parameters": {"type": "object"},
    "benchmarks": {"type": "array", "items": {"type": "string"}},
    "evidence_protocols": {"type": "array", "items": {"type": "string"}},
    "governance_state": {"type": ["string", "null"]},
    "deployment_state": {"type": ["string", "null"]}
  },
  "additionalProperties": true
}
