code: def walk(self, node: dict):
          
          if isinstance(node, bool):
              pass
          elif '$ref' in node and isinstance(node['$ref'], str):
              ref = node['$ref']
              node['$ref'] = urlparse.urljoin(self.resolution_scope, ref)
          elif 'id' in node and isinstance(node['id'], str):
              with self.in_scope(node['id']):
                  self.store[normalize(self.resolution_scope)] = node
                  for _, item in node.items():
                      if isinstance(item, dict):
                          self.walk(item)
          else:
              for _, item in node.items():
                  if isinstance(item, dict):
                      self.walk(item)
docs: Walk thru schema and dereferencing ``id`` and ``$ref`` instances