code: @SuppressWarnings("SameParameterValue")
      public Message menuRequest(Message.KnownType requestType, Message.MenuIdentifier targetMenu,
                                              CdjStatus.TrackSourceSlot slot, Field... arguments)
          throws IOException {
          return menuRequestTyped(requestType, targetMenu, slot, CdjStatus.TrackType.REKORDBOX, arguments);
      }
docs: Send a request for a menu that we will retrieve items from in subsequent requests. This variant works for
  nearly all menus, but when you are trying to request metadata for an unanalyzed (non-rekordbox) track, you
  need to use {@link #menuRequestTyped(Message.KnownType, Message.MenuIdentifier, CdjStatus.TrackSourceSlot, CdjStatus.TrackType, Field...)}
  and specify the actual type of the track whose metadata you want to retrieve.
  
  @param requestType identifies what kind of menu request to send
  @param targetMenu the destination for the response to this query
  @param slot the media library of interest for this query
  @param arguments the additional arguments needed, if any, to complete the request
  
  @return the {@link Message.KnownType#MENU_AVAILABLE} response reporting how many items are available in the menu
  
  @throws IOException if there is a problem communicating, or if the requested menu is not available
  @throws IllegalStateException if {@link #tryLockingForMenuOperations(long, TimeUnit)} was not called successfully
  before attempting this call