anchor.diff:  <command> -n 123 file1 file2 file3
   ----
   
  -=== Parameters
  +=== Required Parameters
   Use the `arity` attribute to make `@Parameters` mandatory:
   [source, java]
   ----
  
positive.code: String[] args = { "-cf", "result.tar", "file1.txt", "file2.txt" };
  Tar tar = CommandLine.parse(new Tar(), args);
  
  assert  tar.create;
  assert !tar.extract;
  assert  tar.archive.equals(new File("result.tar"));
  assert  Arrays.equals(tar.files, new File[] {new File("file1.txt"), new File("file2.txt")});
  ----
  
  Picocli supports http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02[POSIX clustered short options]:
  One or more options without option-arguments, followed by at most one option that takes an option-argument, should be accepted when grouped behind one '-' delimiter.
  
  
  For example, given this annotated class:
  
negative.code: ----
  String[] args = { "-v", "inputFile1", "inputFile2" };
  Example app = CommandLine.parse(new Example(), args);
  assert  app.verbose;
  assert  app.inputFiles != null && app.inputFiles.length == 2;
  ----
  
  == Options and Parameters
  Command line arguments can be separated into _options_  and _positional parameters_.
  Options have a name, positional parameters are the values that follow the options.
  
  image:OptionsAndParameters2.png[Example command with annotated @Option and @Parameters]
  
  Picocli has separate annotations for options and positional parameters.
  
  === Options
  An option must have one or more `names`.
  Picocli lets you use any option name you want.
  
  TIP: You may be interested in this http://catb.org/~esr/writings/taoup/html/ch10s05.html#id2948149[list of common option names]. Following these conventions may make your application more intuitive to use for experienced users.
  
  The below example shows options with one or more names, options that take an option parameter, and a <<Help Options,help>> option.
  [source,java]
  ----
  class Tar {
      @Option(names = "-c", description = "create a new archive")
      boolean extract;
  
      @Option(names = { "-f", "--file" }, paramLabel = "ARCHIVE", description = "the archive file")
      File archive;
  
      @Parameters(paramLabel = "FILE", description = "one ore more files to archive")
      File[] files;
  
      @Option(names = { "-h", "--help" }, help = true, description = "display a help message")
      private boolean helpRequested = false;
  }
  ----
  Picocli matches the option names to set the field values.
  