code: func (fw *Framework) NewRequestMessageFromTransportJSON(payload []byte) (msg *Message, err error) {
  	transport, err := fw.NewTransportFromJSON(string(payload))
  	if err != nil {
  		return nil, err
  	}
  
  	srequest, err := fw.NewSecureRequestFromTransport(transport, false)
  	if err != nil {
  		return nil, err
  	}
  
  	request, err := fw.NewRequestFromSecureRequest(srequest)
  	if err != nil {
  		return nil, err
  	}
  
  	protocol.CopyFederationData(transport, request)
  
  	msg, err = NewMessageFromRequest(request, transport.ReplyTo(), fw)
  	if err != nil {
  		return nil, err
  	}
  
  	return
  }
docs: // NewRequestMessageFromTransportJSON creates a Message from a Transport JSON that holds a Request