{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "required": ["problem-structure", "analysis-synthesis", "evidence", "options", "source-contributions", "lens-coverage"], "properties": { "problem-structure": { "type": "object", "minProperties": 1 }, "analysis-synthesis": { "type": "object", "minProperties": 1 }, "options": {"type": "array", "minItems": 2, "items": { "type": "object", "required": ["id", "problem", "tradeoffs", "evidence-refs"], "properties": { "id": {"type": ["string", "number"]}, "problem": {"type": "string", "minLength": 1}, "tradeoffs": {"type": "array", "minItems": 1}, "evidence-refs": {"type": "array", "minItems": 1} } }}, "evidence": {"type": "array", "minItems": 1}, "source-contributions": { "type": "array", "minItems": 3, "items": { "type": "object", "required": [ "report-id", "report-ref", "report-sha256", "producer-role-id", "context-package-ref", "context-package-sha256", "assigned-lens", "producer-run-id" ], "properties": { "report-id": {"type": "string", "minLength": 1}, "report-ref": {"type": "string", "minLength": 1}, "report-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "producer-role-id": {"type": "string", "minLength": 1}, "context-package-ref": {"type": "string", "minLength": 1}, "context-package-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "assigned-lens": {"type": "string", "pattern": "^LENS-[A-Z0-9-]+$"}, "producer-run-id": {"type": "string", "minLength": 1} } } }, "lens-coverage": { "type": "object", "required": ["required-min", "covered", "contrarian-report-id"], "properties": { "required-min": {"oneOf": [{"type": "integer", "minimum": 1}, {"const": "all-relevant"}]}, "covered": { "type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "pattern": "^LENS-[A-Z0-9-]+$"} }, "contrarian-report-id": {"type": ["string", "null"]} } }, "competitive-market-grounding-ref": { "type": "object", "required": ["report-id", "report-ref", "report-sha256"], "properties": { "report-id": {"type": "string", "minLength": 1}, "report-ref": {"type": "string", "minLength": 1}, "report-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"} } } } }