code: func Generate() (files []string, err error) {
  	var (
  		outDir, ver  string
  		timeout      time.Duration
  		scheme, host string
  		noexample    bool
  	)
  
  	set := flag.NewFlagSet("client", flag.PanicOnError)
  	set.StringVar(&outDir, "out", "", "")
  	set.String("design", "", "")
  	set.DurationVar(&timeout, "timeout", time.Duration(20)*time.Second, "")
  	set.StringVar(&scheme, "scheme", "", "")
  	set.StringVar(&host, "host", "", "")
  	set.StringVar(&ver, "version", "", "")
  	set.BoolVar(&noexample, "noexample", false, "")
  	set.Parse(os.Args[1:])
  
  	// First check compatibility
  	if err := codegen.CheckVersion(ver); err != nil {
  		return nil, err
  	}
  
  	// Now proceed
  	g := &Generator{OutDir: outDir, Timeout: timeout, Scheme: scheme, Host: host, NoExample: noexample, API: design.Design}
  
  	return g.Generate()
  }
docs: // Generate is the generator entry point called by the meta generator.