docs: def get_context_data(self, **kwargs):
          """
          Return a dictionary containing all of the values needed to render the
          menu instance to a template, including values that might be used by
          the 'sub_menu' tag to render any additional levels.
          """
          ctx_vals = self._contextual_vals
          opt_vals = self._option_vals
          data = self.create_dict_from_parent_context()
          data.update(ctx_vals._asdict())
          data.update({
              'apply_active_classes': opt_vals.apply_active_classes,
              'allow_repeating_parents': opt_vals.allow_repeating_parents,
              'use_absolute_page_urls': opt_vals.use_absolute_page_urls,
              'max_levels': self.max_levels,
              'use_specific': self.use_specific,
              'menu_instance': self,
              self.menu_instance_context_name: self,
              # Repeat some vals with backwards-compatible keys
              'section_root': data['current_section_root_page'],
              'current_ancestor_ids': data['current_page_ancestor_ids'],
          })
          if not ctx_vals.original_menu_instance and ctx_vals.current_level == 1:
              data['original_menu_instance'] = self
          if 'menu_items' not in kwargs:
              data['menu_items'] = self.get_menu_items_for_rendering()
          data.update(kwargs)
          return data