{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Project Plan","description":"Work breakdown structure (WBS) with phases and tasks. Each task carries an id, owner, start/end dates, duration, dependencies (list of task IDs), status and percent complete. A phase-level summary is provided with overall progress.","type":"object","required":["entity","project_name","project_code","project_manager","baseline_date","version","planned_start","planned_end","phases","tasks","plan_owner"],"additionalProperties":false,"properties":{"entity":{"type":"string","minLength":1},"project_name":{"type":"string","minLength":1},"project_code":{"type":"string","minLength":1},"project_manager":{"type":"string","minLength":1},"baseline_date":{"type":"string","format":"date"},"version":{"type":"string","minLength":1},"planned_start":{"type":"string","format":"date"},"planned_end":{"type":"string","format":"date"},"phases":{"type":"array","minItems":1,"items":{"type":"object","required":["id","name","start","end","lead","percent_complete"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"start":{"type":"string","format":"date"},"end":{"type":"string","format":"date"},"lead":{"type":"string","minLength":1},"percent_complete":{"type":"integer","minimum":0,"maximum":100}}}},"tasks":{"type":"array","minItems":1,"items":{"type":"object","required":["id","name","owner","start","end","duration_days","dependencies","status","percent_complete"],"additionalProperties":false,"properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"owner":{"type":"string","minLength":1},"start":{"type":"string","format":"date"},"end":{"type":"string","format":"date"},"duration_days":{"type":"integer","minimum":0},"dependencies":{"type":"array","items":{"type":"string","minLength":1}},"status":{"type":"string","enum":["not_started","in_progress","done","blocked"]},"percent_complete":{"type":"integer","minimum":0,"maximum":100}}}},"critical_path":{"type":"string"},"assumptions":{"type":"array","items":{"type":"string","minLength":1}},"plan_owner":{"type":"object","required":["name","title"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}}}}}