class AppEvent { const AppEvent({required this.type, required this.payload}); final String type; final Map payload; factory AppEvent.fromJson(Map json) { final dynamic rawPayload = json['data'] ?? json['payload'] ?? const {}; return AppEvent( type: json['type'] as String? ?? 'unknown', payload: _normalizePayload(rawPayload), ); } static Map _normalizePayload(dynamic payload) { if (payload is Map) { return payload; } if (payload is Map) { return Map.from(payload); } return {'value': payload}; } }