docs: public static boolean canHopRight(
              IUserLayoutNodeDescription hopper, IUserLayoutNodeDescription nbh) {
          boolean nbhMoveAld = nbh.isMoveAllowed();
          boolean hopperMoveAld = hopper.isMoveAllowed();
  
          if (nbhMoveAld == hopperMoveAld) return nbhMoveAld;
  
          // from the above test we know that if we get here, moveAld's differ
          double Pnbh = nbh.getPrecedence();
          double Ph = hopper.getPrecedence();
  
          if (Pnbh > Ph) return true;
  
          if (Pnbh < Ph && hopperMoveAld == true) return true;
  
          return false;
      }