static boolean isSubset(
            Collection<? extends AttributeValue> aValues,
            Collection<? extends AttributeValue> bValues,
            boolean caseInsensitive
    ) {
        for (AttributeValue aValue : aValues) {
            boolean foundMatch = false;
            for (AttributeValue bValue : bValues) {
                if (EQUALS.compare(aValue, bValue, caseInsensitive)) {
                    foundMatch = true;
                    break;
                }
            }
            if (!foundMatch) {
                return false;
            }
        }

        return true;
    }
Compares the given attribute values by flattening each side of the
comparison, and comparing each value.

<p>This method is necessary in order to support matching on projections
using projection semantics.

@param singleComparison Comparison to apply to each element.
@return Returns the created comparator.
smithy-model/src/main/java/software/amazon/smithy/model/selector/AttributeComparator.java