{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://bmad-spec/schemas/product_requirements.schema.json", "title": "Product Requirements Document", "type": "object", "additionalProperties": false, "required": [ "title", "overview", "personas", "features", "non_functional_requirements", "constraints" ], "properties": { "title": { "type": "string", "minLength": 1 }, "overview": { "type": "string", "minLength": 1 }, "personas": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["name", "goals", "pain_points"], "properties": { "name": { "type": "string" }, "goals": { "type": "array", "items": { "type": "string" } }, "pain_points": { "type": "array", "items": { "type": "string" } } } } }, "features": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": false, "required": ["id", "title", "description", "acceptance_criteria", "priority"], "properties": { "id": { "type": "string", "pattern": "^(FR|NFR)-[0-9]{3}$" }, "title": { "type": "string" }, "description": { "type": "string" }, "acceptance_criteria": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "priority": { "type": "string", "enum": ["must", "should", "could"] }, "dependencies": { "type": "array", "items": { "type": "string" } } } } }, "non_functional_requirements": { "type": "array", "items": { "type": "string" } }, "constraints": { "type": "array", "items": { "type": "string" } } } }