{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","yearend_premium","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["place","date","reference_year","language"],"properties":{"place":{"type":"string"},"date":{"type":"string","format":"date"},"reference_year":{"type":"integer","minimum":2000,"maximum":2100},"language":{"type":"string","enum":["fr","nl","de","en"]},"reference":{"type":"string"}}},"employer":{"type":"object","additionalProperties":false,"required":["name","bce_number","onss_number","joint_committee"],"properties":{"name":{"type":"string"},"address":{"type":"string"},"bce_number":{"type":"string"},"vat_number":{"type":"string"},"onss_number":{"type":"string"},"joint_committee":{"type":"string"},"social_secretariat":{"type":"string"},"represented_by":{"type":"string"}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","function_title","start_date"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"address":{"type":"string"},"function_title":{"type":"string"},"department":{"type":"string"},"start_date":{"type":"string","format":"date","description":"Date of entry into service (for prorata calculation)."},"employee_number":{"type":"string"},"statut":{"type":"string","enum":["bediende","arbeider","kaderlid"]}}},"yearend_premium":{"type":"object","additionalProperties":false,"required":["premium_type","gross_amount_eur","onss_employee_eur","net_amount_eur","payment_date"],"description":"Year-end premium or 13th month details.","properties":{"premium_type":{"type":"string","enum":["thirteenth_month","yearend_premium","cct90_bonus","discretionary_bonus"],"description":"Legal type of the year-end payment."},"gross_amount_eur":{"type":"number","minimum":0},"onss_employee_eur":{"type":"number","minimum":0,"description":"Employee ONSS/RSZ deduction (standard 13.07% or special CCT 90 rate)."},"withholding_tax_eur":{"type":"number","minimum":0,"description":"Withholding tax (précompte professionnel) deducted at source."},"net_amount_eur":{"type":"number","minimum":0},"payment_date":{"type":"string","format":"date"},"reference_salary_eur":{"type":"number","minimum":0,"description":"Monthly gross reference salary used for the calculation."},"prorata_months":{"type":"number","minimum":0,"maximum":12,"description":"Number of qualifying months (12 for full year)."},"seniority_coefficient":{"type":"number","minimum":0,"description":"Sectoral seniority multiplier if applicable (typically 1.00)."},"legal_basis":{"type":"string","description":"Applicable CCT/sectoral basis (e.g. 'CCT sectorielle CP 200 Art.5')."},"notes":{"type":"string"}}},"annual_highlights":{"type":"object","additionalProperties":false,"description":"Optional personalised annual HR summary for the employee.","properties":{"gross_annual_eur":{"type":"number","minimum":0},"net_annual_eur":{"type":"number","minimum":0},"benefits_total_eur":{"type":"number","minimum":0},"training_hours":{"type":"integer","minimum":0},"leave_days_taken":{"type":"integer","minimum":0}}},"company_highlights":{"type":"array","items":{"type":"string"},"description":"Key company achievements or news from the reference year."},"next_year_dates":{"type":"array","description":"Important dates for the coming year.","items":{"type":"object","additionalProperties":false,"required":["date","description"],"properties":{"date":{"type":"string","format":"date"},"description":{"type":"string"}}}},"closing_message":{"type":"string","description":"Personalised closing message or wishes for the new year."},"signature":{"type":"object","additionalProperties":false,"required":["signatory_name","signatory_title","date"],"properties":{"signatory_name":{"type":"string"},"signatory_title":{"type":"string"},"second_signatory_name":{"type":"string"},"second_signatory_title":{"type":"string"},"date":{"type":"string","format":"date"}}}}}