docs: public static <K, V> LinkedOptionalMap<K, V> optionalMapOf(Map<K, V> sourceMap, Function<K, String> keyNameGetter) {
  
  		LinkedHashMap<String, KeyValue<K, V>> underlyingMap = new LinkedHashMap<>(sourceMap.size());
  
  		sourceMap.forEach((k, v) -> {
  			String keyName = keyNameGetter.apply(k);
  			underlyingMap.put(keyName, new KeyValue<>(k, v));
  		});
  
  		return new LinkedOptionalMap<>(underlyingMap);
  	}