Map<String, dynamic> toJson() { final result = <String, dynamic>{ 'messages': messages.map((m) => m.toJson()).toList(), }; if (description != null) result['description'] = description!; return result; }