code: def pretty_print(self):
          
          msg = "Source: " + str(self._source) + "\n"
          msg += "Destination: " + str(self._destination) + "\n"
          inv_types = {v: k for k, v in defines.Types.items()}
          msg += "Type: " + str(inv_types[self._type]) + "\n"
          msg += "MID: " + str(self._mid) + "\n"
          if self._code is None:
              self._code = 0
  
          msg += "Code: " + str(defines.Codes.LIST[self._code].name) + "\n"
          msg += "Token: " + str(self._token) + "\n"
          for opt in self._options:
              msg += str(opt)
          msg += "Payload: " + "\n"
          msg += str(self._payload) + "\n"
          return msg
docs: Return the message as a formatted string.
  
          :return: the string representing the message