{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Project Change Request","description":"Project-scoped change request (CR) routed through the change control board (CCB). Captures scope, schedule (days) and cost (amount) impact together with quality and risk impact. Records the CCB decision: approved, rejected or deferred.","type":"object","required":["entity","project_name","project_code","cr_id","change_title","submitted_date","requestor","priority","currency","change_description","reason","scope_impact","schedule_impact","cost_impact","quality_impact","risk_impact","recommendation","ccb_decision","approver"],"additionalProperties":false,"properties":{"entity":{"type":"string","minLength":1},"project_name":{"type":"string","minLength":1},"project_code":{"type":"string","minLength":1},"cr_id":{"type":"string","minLength":1},"change_title":{"type":"string","minLength":1},"submitted_date":{"type":"string","format":"date"},"requestor":{"type":"object","required":["name","title"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}}},"priority":{"type":"string","enum":["low","medium","high","critical"]},"currency":{"type":"string","minLength":3,"maxLength":3},"change_description":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"scope_impact":{"type":"string","minLength":1},"schedule_impact":{"type":"object","required":["days","detail"],"additionalProperties":false,"properties":{"days":{"type":"integer"},"detail":{"type":"string","minLength":1}}},"cost_impact":{"type":"object","required":["amount","detail"],"additionalProperties":false,"properties":{"amount":{"type":"number"},"detail":{"type":"string","minLength":1}}},"quality_impact":{"type":"string","minLength":1},"risk_impact":{"type":"string","minLength":1},"alternatives":{"type":"array","items":{"type":"string","minLength":1}},"do_nothing":{"type":"string"},"recommendation":{"type":"string","minLength":1},"ccb_decision":{"type":"object","required":["outcome","date","rationale"],"additionalProperties":false,"properties":{"outcome":{"type":"string","enum":["approved","rejected","deferred"]},"date":{"type":"string","format":"date"},"rationale":{"type":"string","minLength":1},"conditions":{"type":"string"}}},"approver":{"type":"object","required":["name","title"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}}}}}