{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Training Session Attendance Sheet","description":"Participant attendance record for a single training session. Supports audit evidence for mandatory-compliance training (e.g. GDPR Art. 39 awareness, Directive 89/391/EEC occupational safety) and general L&D record-keeping. Captures session metadata, delivery modality, trainer, participants with signed attendance status, objectives covered and materials distributed.","type":"object","additionalProperties":false,"required":["session","participants","training_objectives_covered","materials_distributed","session_summary","recorded_by"],"$defs":{"participant":{"type":"object","additionalProperties":false,"required":["name","role","signature_placeholder","attended"],"properties":{"name":{"type":"string"},"employee_id_optional":{"type":"string"},"role":{"type":"string"},"signature_placeholder":{"type":"string","description":"Literal placeholder string (e.g. '___________') rendered in the signature column; to be signed in ink on the printed copy."},"attended":{"enum":["present","late","absent_excused","absent_unexcused"]},"late_minutes_optional":{"type":"integer","minimum":0}}}},"properties":{"session":{"type":"object","additionalProperties":false,"required":["title","date","start_time","end_time","location","delivery_mode","trainer_name","trainer_organisation"],"properties":{"title":{"type":"string"},"date":{"type":"string","format":"date"},"start_time":{"type":"string","description":"HH:MM local time."},"end_time":{"type":"string","description":"HH:MM local time."},"location":{"type":"string"},"delivery_mode":{"enum":["classroom","online","blended","on_the_job"]},"trainer_name":{"type":"string"},"trainer_organisation":{"type":"string"}}},"participants":{"type":"array","minItems":1,"items":{"$ref":"#/$defs/participant"}},"training_objectives_covered":{"type":"array","minItems":1,"items":{"type":"string"}},"materials_distributed":{"type":"array","items":{"type":"string"}},"session_summary":{"type":"string"},"recorded_by":{"type":"object","additionalProperties":false,"required":["name","title","date"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"date":{"type":"string","format":"date"}}}}}