extension NullableMapKey on Map { V? tryPutIfAbsent(K key, V? Function() ifAbsent) { final value = ifAbsent(); if (value == null) { return null; } return putIfAbsent(key, () => value); } }