code: function _sendToPanel (win, panelID, message, ...args) {
    if ( typeof message !== 'string' ) {
      console.error(`The message "${message}" sent to panel "${panelID}" must be a string`);
      return;
    }
  
    let opts = ipcPlus.internal._popReplyAndTimeout(args);
    if ( !opts ) {
      args = [`${ipcPlus.id}:main2panel`, panelID, message, ...args];
      if ( win.webContents.send.apply(win.webContents, args) === false ) {
        console.error(`Failed to send message "${message}" to panel "${panelID}", no response received.`);
      }
      return;
    }
  
    let sessionId = ipcPlus.internal._newSession(message, `${panelID}@main`, opts.reply, opts.timeout, this);
  
    //
    args = [`${ipcPlus.id}:main2panel`, panelID, message, ...args, ipcPlus.option({
      sessionId: sessionId,
      waitForReply: true,
      timeout: opts.timeout, // this is only used as debug info
    })];
    win.webContents.send.apply(win.webContents, args);
  
    return sessionId;
  }
docs: ======================================== Internal ========================================