code: func (c *Connector) CheckSchema(ctx context.Context, scope, namePrefix string, eds []*dosa.EntityDefinition) (int32, error) {
  	// convert the client EntityDefinition to the RPC EntityDefinition
  	rpcEntityDefinition := EntityDefsToThrift(eds)
  	csr := dosarpc.CheckSchemaRequest{
  		EntityDefs: rpcEntityDefinition,
  		Scope:      &scope,
  		NamePrefix: &namePrefix,
  	}
  	response, err := c.client.CheckSchema(ctx, &csr, getHeaders(c.headers)...)
  	if err != nil {
  		if !dosarpc.Dosa_CheckSchema_Helper.IsException(err) {
  			return dosa.InvalidVersion, errors.Wrap(err, "failed to CheckSchema due to network issue")
  		}
  
  		return dosa.InvalidVersion, wrapError(err, "failed to CheckSchema", scope)
  	}
  
  	return *response.Version, nil
  }
docs: // CheckSchema is one way to register a set of entities. This can be further validated by
  // a schema service downstream.