docs: def _get_specified_sub_menu_template_name(self, level):
          """
          Called by get_sub_menu_template(). Iterates through the various ways in
          which developers can specify potential sub menu templates for a menu,
          and returns the name of the most suitable template for the
          ``current_level``. Values are checked in the following order:
  
          1.  The ``sub_menu_template`` value passed to the template tag (if
              provided)
          2.  The most suitable template from the ``sub_menu_templates`` list
              passed to the template tag (if provided)
          3.  The ``sub_menu_template_name`` attribute set on the menu class (if
              set)
          4.  The most suitable template from a list of templates set as the
              ``sub_menu_template_names`` attribute on the menu class (if set)
  
          Parameters
          ----------
          level : int
              The 'current_level' value from the context, indicating the depth
              of sub menu being rendered as part of a multi-level menu. For sub
              menus, the value will always be greater than or equal to 2.
  
          Returns
          -------
          str or None
              A template name string (the path to a template in the file system),
              or None if no template has been 'specified'
          """
          ideal_index = level - 2
          return self._option_vals.sub_menu_template_name or \
              get_item_by_index_or_last_item(
                  self._option_vals.sub_menu_template_names, ideal_index) or \
              self.sub_menu_template_name or \
              get_item_by_index_or_last_item(
                  self.sub_menu_template_names, ideal_index)