T? dataAs<T>(T Function(Map<String, dynamic>) parser) { if (data == null) return null; return parser(Map<String, dynamic>.from(data)); }