@override Map<String, dynamic> toJson() => { 'type': type, 'optional': optional, 'fields': fieldValueTypes.map((key, value) => MapEntry(key, value.toJson())), };