anchor.diff:  because the `@picocli.groovy.PicocliScript` annotation class and supporting classes have been moved into a separate module, `picocli-groovy`.
   
   ==== Closures in Annotations
  -From picocli 4.6, Groovy programs can use closures in the picocli annotations instead of specifying a class.
  +As of picocli 4.6, Groovy programs can use closures in the picocli annotations instead of specifying a class.
   This can be especially useful in Groovy scripts, where one cannot define a static inner class.
   
   Example:
  
positive.code: 
  The older `@picocli.groovy.PicocliScript` annotation is deprecated from picocli 4.6.
  New scripts should use the `@picocli.groovy.PicocliScript2` annotation (and associated `picocli.groovy.PicocliBaseScript2` base class) instead.
  The table below lists the differences between these base classes.
  
  .Differences between the `PicocliBaseScript2` and `PicocliBaseScript` script base classes.
  [grid=cols,cols=2*,options="header"]
  |===
  | `PicocliBaseScript2` | `PicocliBaseScript`
  | Subcommands can be defined as `@Command`-annotated methods in the script. | No support for `@Command`-annotated methods.
  | Support for `help` subcommands (both the built-in one and custom ones). | No support for `help` subcommands.
  | Exit code support: scripts can override `afterExecution(CommandLine, int, Exception)` to call `System.exit`.| No support for exit code.
  | Invokes https://picocli.info/#execute[`CommandLine::execute`]. Scripts can override `beforeParseArgs(CommandLine)` to install a custom  `IExecutionStrategy`.| Execution after parsing is defined in `PicocliBaseScript::run` and is not easy to customize. Any subcommand _and_ the main script are _both_ executed.
  | Scripts can override `beforeParseArgs(CommandLine)` to install a custom `IParameterExceptionHandler`. | Invalid input handling can be customized by overriding `PicocliBaseScript::handleParameterException`.
  | Scripts can override `beforeParseArgs(CommandLine)` to install a custom `IExecutionExceptionHandler`. | Runtime exception handling can be customized by overriding `PicocliBaseScript::handleExecutionException`.
  | Implements `Callable<Object>`, script body is transformed to the `call` method. | Script body is transformed to the `runScriptBody` method.
  |===
  
  
  
negative.code: [grid=cols,cols=3*,options="header"]
  |===
  | | `IParameterPreprocessor` | `IParameterConsumer`
  | *Principle* | Either augment (return `false`) or replace (return `true`) picocli parsing logic for the matched element. | Replaces picocli parsing logic for the matched element.
  | *Scope* | Commands as well as options and positional parameters. | Options and positional parameters only.
  | *Information on parser internal state* | Yes, information may received via the `info` Map | No
  | *Communication back to parser* | Yes, via modifying the `info` Map | No
  