docs: def messageReceived(self, value, sender, target):
          """
          An AMP-formatted message was received.  Dispatch to the appropriate
          command responder, i.e. a method on this object exposed with
          L{commandMethod.expose}.
  
          @see IMessageReceiver.messageReceived
          """
          if value.type != AMP_MESSAGE_TYPE:
              raise UnknownMessageType()
          inputBox = self._boxFromData(value.data)
          thunk = commandMethod.responderForName(self, inputBox[COMMAND])
          placeholder = _ProtocolPlaceholder(sender, target)
          arguments = thunk.command.parseArguments(inputBox, placeholder)
          try:
              result = thunk(**arguments)
          except tuple(thunk.command.errors.keys()), knownError:
              errorCode = thunk.command.errors[knownError.__class__]
              raise RevertAndRespond(
                  Value(AMP_ANSWER_TYPE,
                           Box(_error_code=errorCode,
                               _error_description=str(knownError)).serialize()))
          else:
              response = thunk.command.makeResponse(result, None)
              return Value(AMP_ANSWER_TYPE, response.serialize())