[
  {"type": "bool", "parser": "strconv.ParseBool(s)"},
  {"type": "string", "parser": "s, error(nil)", "format": "string(*f.v)", "plural": "Strings"},
  {"type": "uint", "parser": "strconv.ParseUint(s, 0, 64)", "plural": "Uints"},
  {"type": "uint8", "parser": "strconv.ParseUint(s, 0, 8)"},
  {"type": "uint16", "parser": "strconv.ParseUint(s, 0, 16)"},
  {"type": "uint32", "parser": "strconv.ParseUint(s, 0, 32)"},
  {"type": "uint64", "parser": "strconv.ParseUint(s, 0, 64)"},
  {"type": "int", "parser": "strconv.ParseFloat(s, 64)", "plural": "Ints"},
  {"type": "int8", "parser": "strconv.ParseInt(s, 0, 8)"},
  {"type": "int16", "parser": "strconv.ParseInt(s, 0, 16)"},
  {"type": "int32", "parser": "strconv.ParseInt(s, 0, 32)"},
  {"type": "int64", "parser": "strconv.ParseInt(s, 0, 64)"},
  {"type": "float64", "parser": "strconv.ParseFloat(s, 64)"},
  {"type": "float32", "parser": "strconv.ParseFloat(s, 32)"},
  {"name": "ExistingFile", "type": "string", "plural": "ExistingFiles", "no_value_parser": true},
  {"name": "ExistingDir", "type": "string", "plural": "ExistingDirs", "no_value_parser": true},
  {"name": "ExistingFileOrDir", "type": "string", "plural": "ExistingFilesOrDirs", "no_value_parser": true},
  {"name": "Regexp", "type": "*regexp.Regexp", "parser": "regexp.Compile(s)"},
  {"name": "HexBytes", "type": "[]byte", "parser": "hex.DecodeString(s)", "help": "Bytes as a hex string."},
  {"name": "Duration", "type": "time.Duration", "parser": "time.ParseDuration(s)", "help": "Time duration."}
]
