static <T> @NonNull ContextCalculator<T> forSingleContext(@NonNull String key, @NonNull Function<T, String> valueFunction) {
        Objects.requireNonNull(key, "key");
        Objects.requireNonNull(valueFunction, "valueFunction");
        return (target, consumer) -> {
            String value = valueFunction.apply(target);
            if (value != null) {
                consumer.accept(key, value);
            }
        };
    }
Creates a new {@link ContextCalculator} that provides a single context.

@param key the key of the context provided by the calculator
@param valueFunction the function used to compute the corresponding value
                     for each query. A context will not be "accumulated"
                     if the value returned is null.
@param <T> the contextual type
@return the resultant calculator
api/src/main/java/net/luckperms/api/context/ContextCalculator.java