Event representation for logs and serialization. Data is returned as is: encoding is up to the caller, so an arbitrary object in data no longer breaks the method.
Map<String, dynamic> toJson();