{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "RFC Specification", "description": "JSON Schema for RFC TOML artifacts with [govctl] metadata section", "type": "object", "required": ["govctl", "sections"], "properties": { "govctl": { "type": "object", "required": [ "id", "title", "version", "status", "phase", "owners", "created" ], "properties": { "id": { "type": "string", "pattern": "^RFC-\\d{4}$" }, "title": { "type": "string", "minLength": 1 }, "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, "status": { "type": "string", "enum": ["draft", "normative", "deprecated"] }, "phase": { "type": "string", "enum": ["spec", "impl", "test", "stable"] }, "owners": { "type": "array", "items": { "type": "string" }, "minItems": 1 }, "created": { "type": "string", "format": "date" }, "updated": { "type": "string", "format": "date" }, "supersedes": { "type": "string", "pattern": "^RFC-\\d{4}$" }, "refs": { "type": "array", "items": { "type": "string", "pattern": "^(RFC-\\d{4}(?::C-[A-Z][A-Z0-9-]*)?|ADR-\\d{4}|WI-\\d{4}-\\d{2}-\\d{2}-(?:[a-f0-9]{4}(?:-\\d{3})?|\\d{3}))$" } }, "tags": { "type": "array", "items": { "type": "string", "pattern": "^[a-z][a-z0-9-]*$" } }, "signature": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "schema": { "type": "integer" } }, "additionalProperties": false }, "sections": { "type": "array", "items": { "type": "object", "required": ["title"], "properties": { "title": { "type": "string" }, "clauses": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } }, "changelog": { "type": "array", "items": { "type": "object", "required": ["version", "date"], "properties": { "version": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" }, "date": { "type": "string", "format": "date" }, "notes": { "type": "string" }, "added": { "type": "array", "items": { "type": "string" } }, "changed": { "type": "array", "items": { "type": "string" } }, "deprecated": { "type": "array", "items": { "type": "string" } }, "removed": { "type": "array", "items": { "type": "string" } }, "fixed": { "type": "array", "items": { "type": "string" } }, "security": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }, "additionalProperties": false }