private List<String> parseAttributePath() {
        ws();

        // '[@:' binds the current shape as the context.
        if (peek() == ':') {
            return Collections.emptyList();
        }

        List<String> path = new ArrayList<>();
        // Parse the top-level namespace key.
        path.add(ParserUtils.parseIdentifier(this));

        // It is optionally followed by "|" delimited path keys.
        path.addAll(parseSelectorPath(this));

        return path;
    }
Filter out unnecessary identity selectors when creating the finalized AST to evaluate selectors.
smithy-model/src/main/java/software/amazon/smithy/model/selector/SelectorParser.java