{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Promotion Letter","description":"Formal addendum to an existing employment contract confirming a promotion: new title, reporting line, grade, responsibilities and updated compensation, effective from a stated date.","type":"object","required":["employer","employee","letter_date","effective_date","previous_role","new_role","compensation","signatory"],"additionalProperties":false,"properties":{"employer":{"type":"object","required":["name","address"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"reference":{"type":"string"}}},"employee":{"type":"object","required":["name","address"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"address":{"type":"string","minLength":1}}},"letter_date":{"type":"string","format":"date"},"effective_date":{"type":"string","format":"date"},"previous_role":{"type":"object","required":["title","department","reports_to"],"additionalProperties":false,"properties":{"title":{"type":"string","minLength":1},"department":{"type":"string","minLength":1},"reports_to":{"type":"string","minLength":1},"grade":{"type":"string"}}},"new_role":{"type":"object","required":["title","department","reports_to","responsibilities"],"additionalProperties":false,"properties":{"title":{"type":"string","minLength":1},"department":{"type":"string","minLength":1},"reports_to":{"type":"string","minLength":1},"grade":{"type":"string"},"responsibilities":{"type":"array","minItems":2,"items":{"type":"string","minLength":1}}}},"compensation":{"type":"object","required":["previous_gross","new_gross","salary_period"],"additionalProperties":false,"properties":{"previous_gross":{"type":"number","minimum":0},"new_gross":{"type":"number","minimum":0},"salary_period":{"type":"string","minLength":1},"bonus_target_previous_pct":{"type":"number","minimum":0,"maximum":100},"bonus_target_new_pct":{"type":"number","minimum":0,"maximum":100},"new_benefits":{"type":"array","items":{"type":"string"}}}},"reason_for_promotion":{"type":"string"},"signatory":{"type":"object","required":["name","role"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"role":{"type":"string","minLength":1}}}}}