docs: def __pack_message(operation, data):
      """Takes message data and adds a message header based on the operation.
  
      Returns the resultant message string.
      """
      request_id = random.randint(-2 ** 31 - 1, 2 ** 31)
      message = struct.pack("<i", 16 + len(data))
      message += struct.pack("<i", request_id)
      message += __ZERO  # responseTo
      message += struct.pack("<i", operation)
      return (request_id, message + data)