@Test
    public void allowedTags_illustratesWhyProjectionComparatorsExist() {
        Set<String> noneMatch = SelectorTest.ids(allowedTagsModel,
                "service\n"
                        + "[trait|smithy.example#allowedTags]\n"
                        + "$service(*)\n"
                        + "~>\n"
                        + "[trait|enum]\n"
                        + ":not([@: @{trait|enum|(values)|tags|(values)}"
                        + "         = @{var|service|trait|smithy.example#allowedTags|(values)}])");

        Set<String> notWhatWeWanted = SelectorTest.ids(allowedTagsModel,
                "service\n"
                        + "[trait|smithy.example#allowedTags]\n"
                        + "$service(*)\n"
                        + "~>\n"
                        + "[trait|enum]\n"
                        + "[@: @{trait|enum|(values)|tags|(values)}"
                        + "    != @{var|service|trait|smithy.example#allowedTags|(values)}]");

        assertThat(noneMatch, empty());
        assertThat(notWhatWeWanted, containsInAnyOrder("smithy.example#GoodEnum", "smithy.example#BadEnum"));
    }
This is a kind of integration test of the examples in the
specification.

Each test "category" is prefixed with "[name]_" to group them.

TODO: It would be great to consolidate other tests from SelectorTest here to better organize tests.
smithy-model/src/test/java/software/amazon/smithy/model/selector/SpecIntegTest.java