{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["contract","employer","employee","student_status","joint_committee","work","compensation","applicable_law","signature"],"properties":{"contract":{"type":"object","additionalProperties":false,"required":["drafting_date","drafting_place","start_date","end_date"],"properties":{"reference":{"type":"string"},"drafting_date":{"type":"string","format":"date"},"drafting_place":{"type":"string"},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date"}}},"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"},"registered_office":{"type":"string"},"bce_number":{"type":"string","pattern":"^0[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"vat_number":{"type":"string","pattern":"^BE0[0-9]{9}$"},"onss_number":{"type":"string"},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}}}},"employee":{"type":"object","additionalProperties":false,"required":["surname","given_name","national_register_number","address","date_of_birth"],"properties":{"surname":{"type":"string"},"given_name":{"type":"string"},"national_register_number":{"type":"string","pattern":"^[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{3}\\.[0-9]{2}$"},"address":{"type":"string"},"date_of_birth":{"type":"string","format":"date","description":"Required to verify minimum age (≥ 15 years with school enrollment, or ≥ 16 years unconditionally)."}}},"student_status":{"type":"object","additionalProperties":false,"required":["school_enrollment_proof_reference","annual_quota_hours_total","annual_quota_hours_already_used","annual_quota_hours_this_contract","solidarity_rate_employer_pct","solidarity_rate_employee_pct"],"properties":{"school_enrollment_proof_reference":{"type":"string","description":"Reference to the school enrollment certificate (attestation d'inscription scolaire / attest schoolinschrijving) kept on file by the employer."},"annual_quota_hours_total":{"type":"integer","const":600,"description":"Annual student work quota: 600 hours per calendar year under the solidarity contribution regime."},"annual_quota_hours_already_used":{"type":"integer","minimum":0,"maximum":600,"description":"Hours already consumed by the student in the current calendar year (verified via Student@Work)."},"annual_quota_hours_this_contract":{"type":"integer","minimum":1,"description":"Number of hours planned under this contract."},"student_at_work_verification_date":{"type":"string","format":"date","description":"Date on which the remaining quota was verified via Student@Work portal."},"solidarity_rate_employer_pct":{"type":"number","const":8.13,"description":"ONSS solidarity contribution employer rate 2026 (hours within the 600-hour quota)."},"solidarity_rate_employee_pct":{"type":"number","const":2.71,"description":"ONSS solidarity contribution employee rate 2026 (hours within the 600-hour quota)."},"dimona_type":{"type":"string","enum":["STU","STU-X"],"description":"Dimona declaration type. STU for standard student workers; STU-X for agricultural/horticultural student workers."},"dimona_reference":{"type":"string","description":"Dimona declaration reference number once submitted."}}},"joint_committee":{"type":"object","additionalProperties":false,"required":["number","name"],"properties":{"number":{"type":"string","description":"Joint committee number (e.g. 200 for white-collar employees, 302 for HORECA)."},"name":{"type":"string"}}},"work":{"type":"object","additionalProperties":false,"required":["function_title","place_of_work"],"properties":{"function_title":{"type":"string"},"function_description":{"type":"string"},"place_of_work":{"type":"string"},"hours_per_week":{"type":"number","exclusiveMinimum":0},"schedule":{"type":"string","description":"Human-readable description of the work schedule."}}},"compensation":{"type":"object","additionalProperties":false,"required":["gross_hourly_wage_eur","payment_frequency"],"properties":{"gross_hourly_wage_eur":{"type":"number","exclusiveMinimum":0,"description":"Gross hourly wage. Must be at least the applicable sectoral minimum (CP barème)."},"payment_frequency":{"type":"string","enum":["weekly","biweekly","monthly"]},"meal_vouchers_eur":{"type":"number","minimum":0,"description":"Daily meal voucher face value in EUR, if applicable."}}},"applicable_law":{"type":"object","additionalProperties":false,"required":["governing_law","competent_court"],"properties":{"governing_law":{"type":"string"},"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"}}}}}