docs: private List<Message> getMoreSearchItems(final CdjStatus.TrackSourceSlot slot, final int sortOrder, final String text,
                                               final int offset, final int count, final Client client)
              throws IOException, InterruptedException, TimeoutException {
          if (client.tryLockingForMenuOperations(MetadataFinder.MENU_TIMEOUT, TimeUnit.SECONDS)) {
              try {
                  final StringField textField = new StringField(text);
                  Message response = client.menuRequest(Message.KnownType.SEARCH_MENU, Message.MenuIdentifier.MAIN_MENU, slot,
                          new NumberField(sortOrder), new NumberField(textField.getSize()), textField, NumberField.WORD_0);
                  final int actualCount = (int)response.getMenuResultsCount();
                  if (offset + count > actualCount) {
                      throw new IllegalArgumentException("Cannot request items past the end of the menu.");
                  }
  
                  // Gather the requested search menu items
                  return client.renderMenuItems(Message.MenuIdentifier.MAIN_MENU, slot, CdjStatus.TrackType.REKORDBOX,
                          offset, count);
              } finally {
                  client.unlockForMenuOperations();
              }
          } else {
              throw new TimeoutException("Unable to lock player for menu operations.");
          }
      }