code: func (c *client) Initialize(ctx context.Context) error {
  	if c.initialized {
  		return nil
  	}
  
  	// check schema for all registered entities
  	registered := c.registrar.FindAll()
  	if len(registered) == 0 {
  		return errors.Errorf("No registered entities found")
  	}
  
  	eds := []*EntityDefinition{}
  	for _, re := range registered {
  		eds = append(eds, re.EntityDefinition())
  	}
  
  	// fetch latest version for all registered entities, assume order is preserved
  	version, err := c.connector.CheckSchema(ctx, c.registrar.Scope(), c.registrar.NamePrefix(), eds)
  	if err != nil {
  		return errors.Wrap(err, "CheckSchema failed")
  	}
  
  	// set version for all registered entities
  	for _, reg := range registered {
  		reg.SetVersion(version)
  	}
  	c.initialized = true
  	return nil
  }
docs: // Initialize performs initial schema checks against all registered entities.