code: func (cs *ClientServerImpl) MakeRequest(input interface{}) error {
  	send, err := cs.CreateRequestMessage(input)
  	if err != nil {
  		return err
  	}
  
  	if cs.MakeRequestHook != nil {
  		send, err = cs.MakeRequestHook(send)
  		if err != nil {
  			return err
  		}
  	}
  
  	// Over the wire we send something like
  	// {"type":"AckRequest","message":{"messageId":"xyz"}}
  	return cs.WriteMessage(send)
  }
docs: // MakeRequest makes a request using the given input. Note, the input *MUST* be
  // a pointer to a valid backend type that this client recognises