enum CameraFeature { spotMetering, histogram, } typedef CameraFeaturesConfig = Map<CameraFeature, bool>; extension CameraFeaturesConfigJson on CameraFeaturesConfig { static CameraFeaturesConfig fromJson(Map<String, dynamic> data) => <CameraFeature, bool>{for (final f in CameraFeature.values) f: data[f.name] as bool? ?? false}; Map<String, dynamic> toJson() => map((key, value) => MapEntry(key.name, value)); }