T? enumFromString<T>(String? key, List<T> values) => values.firstWhereOrNull((v) => key == enumToString(v));