{ "name": "Conversation", "type": "object", "properties": { "participants": { "type": "array", "description": "Array of participant IDs/emails", "items": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "role": { "type": "string", "enum": [ "client", "vendor", "staff", "admin" ] } } } }, "conversation_type": { "type": "string", "enum": [ "client-vendor", "staff-client", "staff-admin", "vendor-admin", "client-admin", "group-staff", "group-event-staff" ], "description": "Type of conversation" }, "is_group": { "type": "boolean", "default": false, "description": "Whether this is a group conversation" }, "group_name": { "type": "string", "description": "Name of the group (e.g., 'All Active Staff', 'Event #123 Team')" }, "related_to": { "type": "string", "description": "ID of related entity (event_id, order_id, etc.)" }, "related_type": { "type": "string", "enum": [ "event", "staff", "business", "general" ], "description": "Type of related entity" }, "subject": { "type": "string", "description": "Conversation subject/title" }, "last_message": { "type": "string", "description": "Preview of last message" }, "last_message_at": { "type": "string", "format": "date-time", "description": "Timestamp of last message" }, "unread_count": { "type": "number", "default": 0, "description": "Number of unread messages" }, "status": { "type": "string", "enum": [ "active", "archived", "closed" ], "default": "active" } }, "required": [ "participants", "conversation_type" ] }