code: func (fw *Framework) NewTransportFromJSON(data string) (message protocol.TransportMessage, err error) {
  	version := gjson.Get(data, "protocol").String()
  
  	switch version {
  	case protocol.TransportV1:
  		message, err = v1.NewTransportFromJSON(data)
  	default:
  		err = fmt.Errorf("Do not know how to create a TransportMessage from an expected JSON format message with content: %s", data)
  	}
  
  	return
  }
docs: // NewTransportFromJSON creates a new TransportMessage from a JSON payload.  The version will match what is in the payload