static CharSequence expectAndSkipShapeId(IdlInternalTokenizer tokenizer) {
        int startPosition = tokenizer.getCurrentTokenStart();
        int offset = skipShapeIdNamespace(tokenizer);
        // Keep parsing if we find a $ or a #.
        if (tokenizer.getCurrentToken() != IdlToken.DOLLAR && tokenizer.getCurrentToken() != IdlToken.POUND) {
            return sliceFrom(tokenizer, startPosition, offset);
        }
        tokenizer.next();
        offset = skipRelativeRootShapeId(tokenizer);
        return sliceFrom(tokenizer, startPosition, offset);
    }
Expects that the tokenizer is on a relative or absolute shape ID, skips over it, and returns a borrowed slice
of the shape ID.

@param tokenizer Tokenizer to consume and advance.
@return Returns the borrowed shape ID.
smithy-model/src/main/java/software/amazon/smithy/model/loader/IdlShapeIdParser.java