The schema scope stack is used to understand where in the visiting of a root schema the visitor
currently is. All visiting will inherently start at the root, and continue to exist in the root
scope until a schema reference is resolved, and the visitor visits the resolved schema. Once
that happens, the resolved schema scope is pushed onto the stack, such that the scope is now the
schema reference. This can happen multiple times as subsequent schema references are resolved.
Once the visitor recurses back out of the resolved schema, it is popped from the stack.