anchor.diff:  This can be useful when a mixin contains logic that is common to many commands.
   See <<Accessing the Mixee from a Mixin>> for more details.
   
  -=== Improved Support for Chinese, Japanese and Korean
  -Picocli will align the usage help message to fit within some user-defined width (80 columns by default).
  -A number of characters in Chinese, Japanese and Korean (CJK) are wider than others.
  -If those characters are treated to have the same width as other characters, the usage help message may extend past the right margin.
  -
  -From 4.0, picocli will use 2 columns for these wide characters when calculating where to put line breaks, resulting in better usage help message text.
  -
  -This can be switched off with `CommandLine.setAdjustLineBreaksForWideCJKCharacters(false)`.
  -
   === Custom Factory
   
   Declaratively registered <<Registering Subcommands Declaratively,subcommands>>, <<Option-specific Type Converters,type converters>> and <<Dynamic Version Information,version providers>> must be instantiated somehow. From picocli 2.2, a custom factory can be specified when constructing a `CommandLine` instance. This allows full control over object creation and opens possibilities for Inversion of Control and Dependency Injection (see <<Dependency Injection,next section>>). For example:
  
positive.code:     }
  }
  ```
  
  === Boolean Options with Parameters
  By default the value of a boolean field is set to the logical negative of its default value when the option is specified on the command line.
  
negative.code: assert params.host.getHostName().equals("localhost");
  assert params.port == 12345;
  assert Arrays.equals(params.files, new File[] {new File("file1.txt"), new File("file2.txt")});
  
  assert params.allParameters.equals(Arrays.asList(args));
  
  ----
  
  See <<Strongly Typed Everything>> for which types are supported out of the box and how to add custom types.
  
  ==== Omitting the Index
  It is possible to omit the `index` attribute. This means different things for single-value and for multi-value positional parameters.
  
  For *multi-value* positional parameters (arrays or collections), omitting the `index` attribute means the field captures _all_ positional parameters (the equivalent of `index = "0..*"`).
  
  For *single-value* positional parameters, picocli's behaviour has changed since version 4.3:
  prior to picocli 4.3, the default index for single-value positional parameters was also `index = "0..*"`, even though only one value (usually the first argument) can be captured.
  From version 4.3, picocli assigns an index automatically, based on the other positional parameters defined in the same command.
  
  [CAUTION]
  ====
  Automatic indexes depend on the ability of Java reflection and Java annotation processors to iterate over fields in declaration order in the source code.
  Officially this is not guaranteed by the Java spec.
  In practice this has worked in Oracle JVMs and OpenJDK from Java 6, but there is some risk this may not work in the future or on other JVM's.
  In general, for single-value positional parameters, using <<Explicit Index,explicit indexes>> is the safer option.
  (Multi-value positional parameters can safely omit the `index` attribute.)
  ====
  
  IMPORTANT: Methods cannot be iterated over in predictable order.
  For applications with <<option-parameters-methods,`@Parameters`-annotated methods>> or combinations of `@Parameters`-annotated methods and `@Parameters`-annotated fields, we recommend using <<Explicit Index,explicit indexes>> for single-value positional parameters.
  
  
  See <<Automatic Parameter Indexes>> for details.
  
  === Mixing Options and Positional Parameters
  From picocli 2.0, positional parameters can be specified anywhere on the command line, they no longer need to follow the options.
  