public static Set<String> caseInsensitiveCopyOf(Collection<? extends String> values) {
        Set<String> caseInsensitiveSet = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
        caseInsensitiveSet.addAll(Objects.requireNonNull(values));
        return Collections.unmodifiableSet(caseInsensitiveSet);
    }
Creates an ordered immutable copy of the given set.

@param values The collection to make an immutable set of.
@param <T> the Set's value type.
@return An ordered immutable Set copy that maintains the order of the original.
smithy-utils/src/main/java/software/amazon/smithy/utils/SetUtils.java