24 lines
1.1 KiB
JSON
24 lines
1.1 KiB
JSON
{
|
|
"$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
|
|
}
|