code: func flagName(field reflect.StructField) (flagname string) {
  	var ok bool
  	if flagname, ok = field.Tag.Lookup("flag"); ok {
  		return flagname
  	}
  
  	if flagname, ok = field.Tag.Lookup("json"); ok {
  		return flagname
  	}
  	flagname = field.Name
  
  	return downcaseAndDash(flagname)
  }
docs: // flagName finds a field's flag name. It first looks for a "flag" tag, then
  // tries to use the "json" tag, and final falls back to using the name of the
  // field after running it through "downcaseAndDash".