code: func (menu *Menu) IsTreeStable() bool {
  	if !menu.IsStable() {
  		return false
  	}
  	for _, child := range menu.Items {
  		if child.IsSubMenu() {
  			if !child.SubMenu.IsTreeStable() {
  				return false
  			}
  		}
  	}
  
  	return true
  }
docs: /*
  A Menu Tree is considered stable if and only if its children nodes report that they are stable.
  Function is recursive, so factor that in to performance
  */