anchor.diff:  ----
   
   === Options with an Optional Parameter
  -
  -Options with `arity = "0..1"` have an optional parameter.
  -This can be useful for <<Optionally Interactive,password options>> and in some other cases.
  -
  -The <<fallbackValue-annotation,fallback value>> determines what value is assigned when the option is specified without a value, while the <<defaultValue-annotation,default value>> determines what value is assigned when the option is not specified at all.
  -
  -[WARNING]
  -====
  -Be careful when defining commands that have both an option with an optional parameter and a positional parameter.
  -
  -The picocli parser is "greedy" when it handles optional parameters: it looks at the value following the option name, and if that value is likely to be a parameter (not another option or subcommand) then it will process the value as a parameter for that option. This may not always be what you want.
  -
  -For example:
  -
  -[source,java]
  -----
  -class Ambiguous {
  -    @Parameters(description = "The file (required).")
  -    File file;
  -
  -    @Option(names = "-x", arity = "0..1",
  -      description = "Option with optional parameter")
  -    String value;
  -
  -    @Option(names = "-y", arity = "0..*",
  -      description = "Option with optional parameters")
  -    List<String> values;
  -}
  -----
  -
  -When `-x VALUE` is specified on the command line, this results in an error: `Missing required parameter: <file>`. Similarly, when `-y a b c path/to/file` is specified.
  -
  -Users can use the <<Double dash (`--`),end-of-options delimiter>> and disambiguate the input with
  - `-x &dash;&dash; VALUE` or `-y a b c &dash;&dash; VALUE`, but this may not be obvious to many users.
  -
  -A better alternative may be to redesign your command to avoid the ambiguity altogether.
  -====
  +See <<Optional Values>>.
   
   == Argument Groups
   Picocli 4.0 introduces a new `@ArgGroup` annotation and its `ArgGroupSpec` programmatic equivalent.
  
positive.code: [#fallbackValue-annotation]
  === `fallbackValue` Annotation
  
  If an option is defined with `arity = "0..1"`, it may or not have a parameter value.
  If such an option is specified without a value on the command line, it is assigned the fallback value.
  
  The `fallbackValue` annotation attribute was introduced in picocli 4.0; prior to this, (from picocli 2.3) an empty String was assigned.
  
negative.code: ----
  Option `-s` has arity `"1..*"` but instead of consuming all parameters,
  the `-f` argument is recognized as a separate option.
  
  
  === Variable Arity Limitations
  Be careful when defining commands that have both an option with variable arity (like `arity = "0..*"`) and a positional parameter.
  
  [WARNING]
  ====
  The picocli parser is "greedy" when it handles option parameters for options with variable arity: it looks at the value following the option name, and if that value can be taken as a parameter (not another option or subcommand, and max arity is not reached yet) then it will process the value as a parameter for that option. This may not always be what you want.
  ====
  
  For example:
  
  [source,java]
  ----
  class Ambiguous {
      @Parameters(description = "The file (required).")
      File file;
  
      @Option(names = "-y", arity = "0..*",
        description = "Option with optional parameters")
      List<String> values;
  }
  ----
  
  When `-y a b c path/to/file` is specified on the command line, this results in an error: `Missing required parameter: <file>`.
  
  Users can use the <<Double dash (`--`),end-of-options delimiter>> and disambiguate the input with
  `-y a b c &dash;&dash; VALUE`, but this may not be obvious to many users.
  
  A better alternative may be to redesign your command to avoid the ambiguity altogether.
  One idea is to use the <<Default Arity,default arity>> (`arity = "1"` in our example) and use the <<Split Regex,split>> attribute to allow users to specify multiple values in a single argument like `a,b,c`.
  If `-y` takes only a single parameter, then user input like `-y a,b,c path/to/file` is no longer ambiguous.
  
  
  
  === Default Arity
  If no `arity` is specified, the number of parameters depends on the field's type.
  