{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","policy_metadata","employer","eligibility","modalities","equipment","allowances","disconnect_right","health_safety","data_protection","equality","reversibility","signatures"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["date","place"],"properties":{"date":{"type":"string","format":"date"},"place":{"type":"string"}}},"policy_metadata":{"type":"object","additionalProperties":false,"required":["version","effective_date","telework_type"],"properties":{"version":{"type":"string"},"effective_date":{"type":"string","format":"date"},"telework_type":{"type":"string","enum":["structural","occasional","both"]},"review_frequency":{"type":"string"}}},"employer":{"type":"object","additionalProperties":false,"required":["name","legal_form","bce","vat","onss","address","joint_committee"],"properties":{"name":{"type":"string"},"legal_form":{"type":"string"},"bce":{"type":"string"},"vat":{"type":"string"},"onss":{"type":"string"},"address":{"type":"string"},"joint_committee":{"type":"string"},"social_secretariat":{"type":"string"},"headcount":{"type":"integer"},"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). Optional; when given, the language of the document is compared with it and a warning (information only) is raised when they do not fit."}}},"eligibility":{"type":"object","additionalProperties":false,"required":["conditions"],"properties":{"conditions":{"type":"array","items":{"type":"string"},"minItems":1},"excluded_roles":{"type":"array","items":{"type":"string"}},"min_seniority_months":{"type":"integer"}}},"modalities":{"type":"object","additionalProperties":false,"required":["max_days_per_week","approval_process"],"properties":{"max_days_per_week":{"type":"integer","minimum":1,"maximum":5},"fixed_days":{"type":"array","items":{"type":"string"}},"flexible_days":{"type":"boolean"},"approval_process":{"type":"string"},"notice_days":{"type":"integer"}}},"equipment":{"type":"object","additionalProperties":false,"required":["provided_by_employer"],"properties":{"provided_by_employer":{"type":"array","items":{"type":"string"},"minItems":1},"worker_provided":{"type":"array","items":{"type":"string"}}}},"allowances":{"type":"object","additionalProperties":false,"required":["home_office_eur_month","internet_eur_month"],"properties":{"home_office_eur_month":{"type":"number"},"internet_eur_month":{"type":"number"},"total_eur_month":{"type":"number"},"onss_basis":{"type":"string"}}},"disconnect_right":{"type":"object","additionalProperties":false,"required":["reachability_hours","prohibition_after_hours"],"properties":{"reachability_hours":{"type":"string"},"prohibition_after_hours":{"type":"string"},"framework_reference":{"type":"string"},"applies_to_headcount_min":{"type":"integer"}}},"health_safety":{"type":"object","additionalProperties":false,"required":["obligations"],"properties":{"obligations":{"type":"array","items":{"type":"string"},"minItems":1},"risk_analysis_required":{"type":"boolean"},"cppt_notified":{"type":"boolean"}}},"data_protection":{"type":"object","additionalProperties":false,"required":["rules"],"properties":{"rules":{"type":"array","items":{"type":"string"},"minItems":1},"gdpr_basis":{"type":"string"}}},"equality":{"type":"object","additionalProperties":false,"required":["statement"],"properties":{"statement":{"type":"string"}}},"reversibility":{"type":"object","additionalProperties":false,"required":["notice_period","procedure"],"properties":{"notice_period":{"type":"string"},"procedure":{"type":"string"}}},"signatures":{"type":"object","additionalProperties":false,"required":["hr_director","date"],"properties":{"hr_director":{"type":"string"},"ceo":{"type":"string"},"date":{"type":"string","format":"date"}}},"_appendices":{"description":"Optional payload-supplied appendices. Each item is appended after the template's default appendices (from appendices/<lang>.json) and rendered through the shared appendix macro. Same contract as the loader: title + body, optional signature.","type":"array","items":{"type":"object","additionalProperties":false,"required":["title","body"],"properties":{"title":{"type":"string","minLength":1},"body":{"type":"string","minLength":1},"signature":{"type":"string"}}}}}}