code: func (c *RawBinaryClient) Version() VersionResponse {
  	versions := make(map[int]string)
  
  	c.mutex.Lock()
  	defer c.mutex.Unlock()
  
  	err := c.sendRequest(opVersion, 0, nil, nil)
  	if err != nil {
  		return NewVersionErrorResponse(err, versions)
  	}
  
  	status, _, _, value, err := c.receiveResponse(opVersion)
  	if err != nil {
  		return NewVersionErrorResponse(err, versions)
  	}
  
  	versions[c.ShardId()] = string(value)
  	return NewVersionResponse(status, versions)
  }
docs: // See Client interface for documentation.