Map<String, dynamic>? toJson() => _attributes.isEmpty ? null : _attributes.map<String, dynamic>((_, attribute) => MapEntry<String, dynamic>(attribute.key, attribute.value));