{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Code Crispies Learning Path Schema", "description": "Schema for guided learning paths that organize modules into structured learning sequences", "type": "object", "required": ["id", "title", "goal", "estimatedTime", "difficulty", "modules"], "properties": { "id": { "type": "string", "description": "Unique identifier for the learning path", "pattern": "^[a-z0-9-]+$" }, "title": { "type": "string", "description": "Display title of the learning path", "minLength": 1, "maxLength": 100 }, "goal": { "type": "string", "description": "Clear description of what the learner will achieve by completing this path", "minLength": 1, "maxLength": 500 }, "estimatedTime": { "type": "integer", "description": "Estimated time to complete the path in minutes", "minimum": 1 }, "difficulty": { "type": "string", "enum": ["beginner", "intermediate", "advanced"], "description": "Overall difficulty level of the learning path" }, "modules": { "type": "array", "description": "Ordered array of module IDs that comprise this learning path", "minItems": 1, "items": { "type": "string", "description": "Module ID that references an existing module", "pattern": "^[a-z0-9-]+$" } }, "prerequisites": { "type": "array", "description": "Optional array of learning path IDs that should be completed before this one", "default": [], "items": { "type": "string", "description": "Learning path ID that should be completed first", "pattern": "^[a-z0-9-]+$" } } } }