事件数据(组合所有相关数据)
Map<String, dynamic> get data => { 'contentId': contentId, 'timestamp': timestamp, if (extra != null) ...extra!, };