Map<K, V> mapOf<K, V>(Iterable<V> values, {required K keyOf(V item)}) { return Map.fromEntries(values.map((v) => MapEntry(keyOf(v), v))); }