docs: def _validate(self):
          """Validate a messages attributes.
          """
          if not is_valid_subject(self.subject):
              raise MessageError("Invalid subject: '%s'" % self.subject)
          if not is_valid_type(self.type):
              raise MessageError("Invalid type: '%s'" % self.type)
          if not is_valid_sender(self.sender):
              raise MessageError("Invalid sender: '%s'" % self.sender)
          if not self.binary and not is_valid_data(self.data):
              raise MessageError("Invalid data: data is not JSON serializable: %s"
                                 % str(self.data))