@Override
    protected Type typeCheckLocal(Scope<Type> scope) {
        Type base = target.typeCheck(scope);
        for (Part part : path) {
            Type baseType = base;
            base = context(String.format("while resolving %s in %s", part, base), this, () -> part.typeCheck(baseType));
        }
        return base;
    }
Gets the list of {@link Part}s that make up the path to the requested attribute.

@return the list of path parts to the requested attribute.
smithy-rules-engine/src/main/java/software/amazon/smithy/rulesengine/language/syntax/expressions/functions/GetAttr.java