{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Meeting Agenda","description":"Formal meeting agenda with date, time window, location, chair, attendees and an ordered list of agenda items, each with owner, duration and type (info/decision/discussion). Optional pre-read documents and logistics.","type":"object","required":["entity","project_name","meeting_title","meeting_date","start_time","end_time","location","chair","secretary","meeting_purpose","attendees","agenda_items"],"additionalProperties":false,"properties":{"entity":{"type":"string","minLength":1},"project_name":{"type":"string","minLength":1},"meeting_title":{"type":"string","minLength":1},"meeting_date":{"type":"string","format":"date"},"start_time":{"type":"string","minLength":1},"end_time":{"type":"string","minLength":1},"location":{"type":"string","minLength":1},"chair":{"type":"object","required":["name","title"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}}},"secretary":{"type":"string","minLength":1},"meeting_purpose":{"type":"string","minLength":1},"attendees":{"type":"array","minItems":1,"items":{"type":"object","required":["name","role","attendance"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"role":{"type":"string","minLength":1},"attendance":{"type":"string","enum":["required","optional","remote","apologies"]}}}},"agenda_items":{"type":"array","minItems":1,"items":{"type":"object","required":["order","topic","owner","duration_minutes","type"],"additionalProperties":false,"properties":{"order":{"type":"integer","minimum":1},"topic":{"type":"string","minLength":1},"owner":{"type":"string","minLength":1},"duration_minutes":{"type":"integer","minimum":1},"type":{"type":"string","enum":["info","decision","discussion"]}}}},"pre_read":{"type":"array","items":{"type":"string","minLength":1}},"logistics":{"type":"object","additionalProperties":false,"properties":{"dial_in":{"type":"string"},"meeting_id":{"type":"string"},"parking":{"type":"string"},"access":{"type":"string"},"catering":{"type":"string"}}}}}