{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Promotion letter (Belgium)","description":"The letter a Belgian employer writes to announce a promotion: the previous and the new role, the compensation as the employer states it, an optional reason and, when requested, an acceptance block the worker countersigns. Nothing is computed or defaulted: no percentage increase, no 'all other terms unchanged' unless the employer says so.","type":"object","additionalProperties":false,"required":["employer","employee","letter","effective_date","previous_role","new_role","compensation","acceptance","signatory"],"properties":{"employer":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"Name or company name of the employer."},"legal_form":{"type":"string","enum":["sole_trader","srl","sa","sc","asbl","other"],"description":"Legal form of the employer."},"enterprise_number":{"type":"string","description":"Belgian enterprise number (KBO/BCE), written 0123.456.789.","pattern":"^[01][0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"seat_region":{"type":"string","enum":["nl_region","fr_region","brussels","de_region"],"description":"Linguistic region of the operating seat of the employer (Flemish decree of 19 July 1973, decree of the French Community of 30 June 1982, coordinated laws of 18 July 1966, art. 52). Informational: nothing compares it with the language of the document yet."}}},"employee":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","description":"Name of the worker."},"address":{"type":"string","description":"Postal address of the worker."},"employee_number":{"type":"string","description":"The employer's own number for the worker."}}},"letter":{"type":"object","additionalProperties":false,"required":["date","place"],"properties":{"date":{"type":"string","format":"date","description":"Date of the letter."},"place":{"type":"string","description":"Place where the letter is drawn up."},"reference":{"type":"string","description":"Reference of the letter, as the employer writes it."}}},"effective_date":{"type":"string","format":"date","description":"Date the new function and pay take effect."},"previous_role":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","description":"Title of the role."},"department":{"type":"string","description":"Department."},"reports_to":{"type":"string","description":"Whom the role reports to."},"grade":{"type":"string","description":"Category or class of function, as the employer's pay system or the sector writes it."}}},"new_role":{"type":"object","additionalProperties":false,"required":["title","responsibilities"],"properties":{"title":{"type":"string","description":"Title of the role."},"department":{"type":"string","description":"Department."},"reports_to":{"type":"string","description":"Whom the role reports to."},"grade":{"type":"string","description":"Category or class of function, as the employer's pay system or the sector writes it."},"responsibilities":{"type":"array","items":{"type":"string","description":"A responsibility."},"description":"The main responsibilities of the new role, one per entry.","minItems":1}}},"compensation":{"type":"object","additionalProperties":false,"required":["new_gross","salary_period"],"properties":{"previous_gross":{"type":"number","minimum":0,"description":"Previous gross pay for the period, in euro."},"new_gross":{"type":"number","minimum":0,"description":"New gross pay for the period, in euro."},"salary_period":{"type":"string","enum":["hour","month","year"],"description":"The period the gross pay covers. No default."},"mobility_budget_new":{"type":"number","minimum":0,"description":"New amount of the mobility budget, in euro, printed only when given and never computed."},"new_benefits":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["label"],"properties":{"label":{"type":"string","description":"The benefit.","minLength":1},"detail":{"type":"string","description":"Its terms, as the employer writes them."}}},"description":"New benefits, as typed."},"other_terms_unchanged":{"type":"boolean","description":"Whether the other terms of the employment are unchanged. The sentence prints only when true."}}},"reason_for_promotion":{"type":"string","description":"The employer's own reason for the promotion, printed as typed."},"has_mobility_budget":{"type":"boolean","description":"Whether the worker has a mobility budget (law of 17 March 2019). The art. 13 par. 1 sentence prints only when true."},"acceptance":{"type":"object","additionalProperties":false,"required":["requested"],"properties":{"requested":{"type":"boolean","description":"Whether the letter asks the worker to countersign it. The acceptance block prints only when true."},"worker_signed_on":{"type":"string","format":"date","description":"Date the worker signed."}}},"signatory":{"type":"object","additionalProperties":false,"required":["name","role"],"properties":{"name":{"type":"string","description":"Name of the person signing for the employer."},"role":{"type":"string","description":"Function of that person."}}}}}