{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["contract","employer","employee","joint_committee","work","compensation","benefits","leave","early_termination","obligations","applicable_law","signature"],"properties":{"contract":{"type":"object","additionalProperties":false,"required":["start_date","end_date","type","drafting_date","drafting_place"],"properties":{"reference":{"type":"string","description":"Internal employer reference (CDD-2026-0012)."},"start_date":{"type":"string","format":"date","description":"Date d'entrée en service / Datum van indiensttreding (Art. 9 Loi 3.7.78)."},"end_date":{"type":"string","format":"date","description":"Date de fin du contrat — mention obligatoire (Art. 9 Loi 3.7.78)."},"type":{"type":"string","enum":["terme_certain","tache_definie","remplacement"],"description":"Forme du CDD: terme certain (dates), tâche définie ou remplacement d'un travailleur absent (Art. 9 Loi 3.7.78)."},"replaced_worker":{"type":"object","additionalProperties":false,"required":["surname","given_name","absence_reason"],"properties":{"surname":{"type":"string"},"given_name":{"type":"string"},"absence_reason":{"type":"string","description":"Motif de l'absence du travailleur remplacé (ex. maladie, congé de maternité)."}},"description":"Obligatoire si type = remplacement (Art. 9 Loi 3.7.78)."},"task_description":{"type":"string","description":"Description précise de la tâche — obligatoire si type = tache_definie."},"succession_number":{"type":"integer","minimum":1,"maximum":4,"description":"Numéro de rang du CDD dans une éventuelle succession (Art. 10 Loi 3.7.78 — max 4 / 3 ans)."},"drafting_date":{"type":"string","format":"date","description":"Date de signature — doit être AVANT la date d'entrée en service (Cass. 4.5.1981)."},"drafting_place":{"type":"string","description":"Ville où le contrat est signé."}}},"employer":{"type":"object","additionalProperties":false,"required":["name","legal_form","registered_office","bce_number","vat_number","onss_number","represented_by"],"properties":{"name":{"type":"string"},"legal_form":{"type":"string","description":"Forme juridique (SRL/BV, SA/NV, SCS/Comm.V, ...)."},"registered_office":{"type":"string"},"bce_number":{"type":"string","description":"Numéro d'entreprise BCE / KBO (format 0xxx.xxx.xxx)."},"vat_number":{"type":"string","description":"Numéro TVA / BTW (format BE0xxxxxxxxx)."},"onss_number":{"type":"string","description":"Numéro d'immatriculation ONSS / RSZ (format 1.xxx.xxx-xx)."},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}},"social_secretariat":{"type":"object","additionalProperties":false,"required":["name","approval_number"],"properties":{"name":{"type":"string"},"approval_number":{"type":"string","description":"Numéro d'agrément du secrétariat social (ex. Acerta 320, SD Worx 200, Securex 120)."}}}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","address","national_register_number","date_of_birth","place_of_birth","nationality","status"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"address":{"type":"string"},"national_register_number":{"type":"string","description":"NISS / Rijksregisternummer (format YY.MM.DD-NNN.CC)."},"date_of_birth":{"type":"string","format":"date"},"place_of_birth":{"type":"string"},"nationality":{"type":"string"},"status":{"type":"string","enum":["arbeider","bediende","dienstbode","leerling","kaderlid"],"description":"Statut / Werknemerstatuut."}}},"joint_committee":{"type":"object","additionalProperties":false,"required":["number","name","applicable_ccts"],"properties":{"number":{"type":"string","description":"Numéro CP / PC (ex. 200, 124, 319, 337)."},"name":{"type":"string"},"salary_scale_reference":{"type":"string","description":"Référence du barème sectoriel applicable."},"applicable_ccts":{"type":"array","minItems":0,"items":{"type":"object","additionalProperties":false,"required":["reference","subject"],"properties":{"reference":{"type":"string"},"subject":{"type":"string"}}}}}},"work":{"type":"object","additionalProperties":false,"required":["function_title","function_classification","classification_type","place_of_work","regime","weekly_hours","schedule","work_regulations_reference"],"properties":{"function_title":{"type":"string"},"function_description":{"type":"string"},"function_classification":{"type":"string"},"classification_type":{"type":"string","enum":["barème_sectoriel","classification_entreprise","fonction_de_référence","hors_barème"]},"place_of_work":{"type":"string"},"telework_allowed":{"type":"boolean"},"telework_clause_reference":{"type":"string"},"regime":{"type":"string","enum":["voltijds","deeltijds"]},"weekly_hours":{"type":"number"},"fte_percentage":{"type":"number","minimum":0,"maximum":100,"description":"Fraction d'occupation — obligatoire si deeltijds (Art. 11bis Loi 3.7.78)."},"schedule":{"type":"string"},"work_regulations_reference":{"type":"string"}}},"compensation":{"type":"object","additionalProperties":false,"required":["gross_salary","currency","frequency","payment_method","payment_date_rule","indexation_clause"],"properties":{"gross_salary":{"type":"number"},"currency":{"type":"string","enum":["EUR"]},"frequency":{"type":"string","enum":["maandelijks","uurloon","stukloon"]},"payment_method":{"type":"string","enum":["overschrijving","circulaire_cheque","contant"]},"payment_iban":{"type":"string"},"payment_date_rule":{"type":"string"},"thirteenth_month":{"type":"object","additionalProperties":false,"required":["applies","basis"],"properties":{"applies":{"type":"boolean"},"basis":{"type":"string"}}},"indexation_clause":{"type":"string"}}},"benefits":{"type":"object","additionalProperties":false,"properties":{"meal_vouchers":{"type":"object","additionalProperties":false,"required":["face_value","employer_share","employee_share"],"properties":{"face_value":{"type":"number"},"employer_share":{"type":"number"},"employee_share":{"type":"number"}}},"eco_cheques":{"type":"object","additionalProperties":false,"required":["annual_amount"],"properties":{"annual_amount":{"type":"number"},"cct_reference":{"type":"string"}}},"hospitalization_insurance":{"type":"object","additionalProperties":false,"required":["provider"],"properties":{"provider":{"type":"string"},"policy_reference":{"type":"string"}}},"transport_allowance":{"type":"object","additionalProperties":false,"required":["mode","monthly_amount"],"properties":{"mode":{"type":"string","enum":["public_transport_full","bicycle","private_car_km","combination"]},"monthly_amount":{"type":"number"},"cct_reference":{"type":"string"}}},"other_benefits":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["label","description"],"properties":{"label":{"type":"string"},"description":{"type":"string"}}}}}},"leave":{"type":"object","additionalProperties":false,"required":["statutory_days","extra_legal_days"],"properties":{"statutory_days":{"type":"number","description":"Vacances légales (Lois coordonnées 28.6.1971)."},"extra_legal_days":{"type":"number"}}},"early_termination":{"type":"object","additionalProperties":false,"required":["indemnity_clause","cct_109_applies"],"properties":{"indemnity_clause":{"type":"string","description":"Description de l'indemnité de rupture anticipée (Art. 39bis Loi 3.7.78)."},"cct_109_applies":{"type":"boolean","description":"La CCT 109 du 12.2.2014 s'applique (motivation du licenciement)."}}},"optional_clauses":{"type":"object","additionalProperties":false,"properties":{"non_compete":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"geographic_scope":{"type":"string"},"duration_months":{"type":"integer","minimum":1,"maximum":12},"indemnity_basis":{"type":"string"}}},"confidentiality":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"scope":{"type":"string"}}},"training_clause":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"min_duration_months":{"type":"integer"},"reimbursement_terms":{"type":"string"}}}}},"obligations":{"type":"object","additionalProperties":false,"required":["incapacity_notice"],"properties":{"incapacity_notice":{"type":"string"},"medical_certificate_deadline_days":{"type":"integer","minimum":1,"maximum":5}}},"applicable_law":{"type":"object","additionalProperties":false,"required":["governing_law","competent_court"],"properties":{"governing_law":{"type":"string","enum":["belge"]},"competent_court":{"type":"string"}}},"signature":{"type":"object","additionalProperties":false,"required":["copies","mention_lu_et_approuve"],"properties":{"copies":{"type":"integer","minimum":2},"mention_lu_et_approuve":{"type":"boolean"}}}}}