anchor.diff:  
   [source,java]
   ----
  -MyCommand zip = new MyCommand();
  -CommandLine commandLine = new CommandLine(zip);
  -commandLine.parseArgs("-vvv");
  -
  -// the options defined in ReusableOptions have been added to the zip command
  -assert zip.myMixin.verbosity.length == 3;
  +MyCommand cmd = new MyCommand();
  +new CommandLine(cmd).parseArgs("-vvv");
  +
  +// the options defined in ReusableOptions have been added to the `MyCommand` command
  +assert cmd.myMixin.verbosity.length == 3;
   ----
   
   Mixins added with the `@Mixin` annotation can also be accessed via the map returned by `CommandLine.getMixins`.
   
   The GitHub project has a https://github.com/remkop/picocli/tree/master/picocli-examples/src/main/java/picocli/examples/mixin[full working example].
   
  -=== Accessing the Mixee From a Mixin
  -
  -Sometimes you need to write a Mixin class that accesses the mixee command where it is mixed in.
  -
  -This can be accomplished with the <<spec-annotation, `@Spec` annotation>>, by setting its target to `Spec.Target.MIXEE`.
  +==== Accessing the Mixee from a Mixin
  +
  +Sometimes you need to write a Mixin class that accesses the mixee (the command where it is mixed in).
  +
  +From picocli 4.3, this can be accomplished with the <<spec-annotation, `@Spec(Spec.Target.MIXEE)` annotation>>.
  +
  +By default, the `CommandSpec` of the enclosing class is injected into a `@Spec`-annotated field, but when `MIXEE` is specified the `CommandSpec` of the command _receiving_ this mixin (the "mixee") is injected.
  +This can be useful when a mixin contains logic that is common to many commands.
   For example:
   
   [source,java]
  
positive.code: Type converters declared with the `converter` attribute need to have a public no-argument constructor to be instantiated, unless a <<Custom Factory>> is installed to instantiate classes.
  
  === Arrays, Collections, Maps
  NOTE: Starting from picocli v2.0, the `type` attribute is no longer necessary for `Collection` and `Map` fields:
  picocli will infer the collection element type from the generic type.
  (The `type` attribute still works as before, it is just optional in most cases.)
  
  
negative.code: class AdvancedMixin {
      @Spec(Spec.Target.MIXEE) CommandSpec mixee;
  
      /**
       * When the -x option is specified on any subcommand,
       * multiply its value with another integer supplied by this subcommand
       * and set the result on the top-level command.
       * @param x the value of the -x option
       */
      @Option(names = "-x")
      void setValue(int x) {
          // get another value from the command we are mixed into
          int y = ((java.util.function.IntSupplier) mixee.userObject()).getAsInt();
  
          int product = x * y;
  