{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "reader-contract.schema.json", "title": "02_reader_contract.json", "type": "object", "required": ["schema_version", "document_kind", "primary_audience", "purpose", "reader_question", "reader_outcome", "prerequisites", "assumed_known", "must_explain", "non_goals"], "properties": { "schema_version": {"const": "1.0"}, "document_kind": {"enum": ["explanation", "decision", "how-to", "reference"]}, "primary_audience": {"type": "string", "minLength": 1, "pattern": "\\S"}, "purpose": {"type": "string", "minLength": 1, "pattern": "\\S"}, "reader_question": {"type": "string", "minLength": 1, "pattern": "\\S"}, "reader_outcome": {"type": "string", "minLength": 1, "pattern": "\\S"}, "prerequisites": {"$ref": "#/$defs/stringList"}, "assumed_known": {"$ref": "#/$defs/stringList"}, "must_explain": {"$ref": "#/$defs/stringList"}, "non_goals": {"$ref": "#/$defs/stringList"} }, "$defs": { "stringList": {"type": "array", "items": {"type": "string", "minLength": 1, "pattern": "\\S"}, "uniqueItems": true} }, "additionalProperties": false }