{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","leave_year","legal_leave","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["place","date","language"],"properties":{"place":{"type":"string"},"date":{"type":"string","format":"date"},"language":{"type":"string","enum":["fr","nl","de","en"]},"reference":{"type":"string"}}},"employer":{"type":"object","additionalProperties":false,"required":["name","address","bce_number","onss_number","joint_committee"],"properties":{"name":{"type":"string"},"address":{"type":"string"},"bce_number":{"type":"string"},"onss_number":{"type":"string"},"joint_committee":{"type":"string"},"social_secretariat":{"type":"string"}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","employee_id","function_title","statut","start_date"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"employee_id":{"type":"string"},"function_title":{"type":"string"},"department":{"type":"string"},"statut":{"type":"string","enum":["bediende","arbeider","kaderlid"]},"start_date":{"type":"string","format":"date"},"contract_type":{"type":"string","enum":["cdi","cdd"]},"work_regime":{"type":"string","description":"Régime de travail: 'fulltime' ou fraction temps partiel (ex. '4/5')."}}},"leave_year":{"type":"integer","minimum":2020,"maximum":2100,"description":"Année de vacances (année de prise des congés)."},"reference_year":{"type":"integer","minimum":2019,"maximum":2099,"description":"Année de référence N-1 sur laquelle le droit est basé."},"balance_date":{"type":"string","format":"date","description":"Date à laquelle le solde est calculé (ex. 31.12 ou date de communication)."},"legal_leave":{"type":"object","additionalProperties":false,"required":["days_entitled","days_taken","days_remaining"],"properties":{"days_entitled":{"type":"number","minimum":0,"description":"Jours de congé légaux acquis (Loi 28.6.1971 / AR 30.3.1967)."},"days_taken":{"type":"number","minimum":0,"description":"Jours de congé légaux déjà pris dans l'année de vacances."},"days_remaining":{"type":"number","minimum":0,"description":"Solde de jours de congé légaux restants."},"carry_over_allowed":{"type":"boolean","description":"Report autorisé au-delà du 31.12 (uniquement si accord contractuel)."},"expiry_date":{"type":"string","format":"date","description":"Date d'expiration du droit aux congés légaux (normalement 31.12 de l'année de vacances)."}}},"pecule_simple_eur":{"type":"number","minimum":0,"description":"Pécule de vacances simple calculé (92\\% × 1/12 × rémunération annuelle brute N-1 × mois prestés)."},"pecule_double_eur":{"type":"number","minimum":0,"description":"Pécule de vacances double calculé (92\\% × 92\\% × rémunération mensuelle − pécule simple)."},"supplementary_leaves":{"type":"array","description":"Congés supplémentaires conventionnels (au-delà du minimum légal).","items":{"type":"object","additionalProperties":false,"required":["leave_type","days_entitled","days_taken","days_remaining"],"properties":{"leave_type":{"type":"string","description":"Type: 'seniority', 'sectoral_extra', 'european', 'other'."},"leave_type_label":{"type":"string"},"days_entitled":{"type":"number","minimum":0},"days_taken":{"type":"number","minimum":0},"days_remaining":{"type":"number","minimum":0},"carry_over_allowed":{"type":"boolean"},"legal_basis":{"type":"string"}}}},"notes":{"type":"string","description":"Remarques libres (ex. congé maladie, assimilation, etc.)."},"signature":{"type":"object","additionalProperties":false,"required":["signatory_name","signatory_title","date"],"properties":{"signatory_name":{"type":"string"},"signatory_title":{"type":"string"},"date":{"type":"string","format":"date"}}}}}