default <V> V getOrSupplyDefault(@NonNull CloudKey<@NonNull V> key, @NonNull Supplier<V> supplier) {
        return this.optional(key).orElseGet(supplier);
    }
Returns the value associated with the given {@code key} if it exists,
or else the value supplied by the given {@code supplier}

@param <V>      the type of the value
@param key      the key
@param supplier supplier of the default value
@return the value
cloud-core/src/main/java/org/incendo/cloud/key/CloudKeyContainer.java