static hello5x3 (userAgent, boltAgent, notificationFilter = null, routing = null) {
    const metadata = { }

    if (userAgent) {
      metadata.user_agent = userAgent
    }

    if (boltAgent) {
      metadata.bolt_agent = {
        product: boltAgent.product,
        platform: boltAgent.platform,
        language: boltAgent.language,
        language_details: boltAgent.languageDetails
      }
    }

    appendLegacyNotificationFilterToMetadata(metadata, notificationFilter)

    if (routing) {
      metadata.routing = routing
    }

    return new RequestMessage(
      HELLO,
      [metadata],
      () => `HELLO ${json.stringify(metadata)}`
    )
  }
Create a new HELLO message.
@param {string} userAgent the user agent.
@param {string} boltAgent the bolt agent.
@param {NotificationFilter} notificationFilter the notification filter configured
@param {Object} routing server side routing, set to routing context to turn on server side routing (> 4.1)
@return {RequestMessage} new HELLO message.