code: func flagJSON(fl *pflag.Flag) *flag {
  	f := &flag{Long: fl.Name, Short: fl.Shorthand, Description: fl.Usage}
  	f.Required = fl.Name == "pkg-path" || fl.Name == "design"
  	switch fl.Name {
  	case "out":
  		f.Argument = "$DIR"
  	case "design":
  		f.Argument = "$DESIGN_PKG"
  	case "pkg-path":
  		f.Argument = "$PKG"
  	}
  	return f
  }
docs: // Lots of assumptions in here, it's OK for what we are doing
  // Remember to update as goagen commands and flags evolve
  //
  // The flag argument values use variable names that cary semantic:
  // $DIR for file system directories, $DESIGN_PKG for import path to Go goa design Go packages, $PKG
  // for import path to any Go package.