anchor.diff:  }
   ----
   
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +val commandLine = CommandLine(VersionedCommand())
  +commandLine.parseArgs(*args)
  +if (commandLine.isVersionHelpRequested) {
  +    commandLine.printVersionHelp(System.out)
  +    return
  +}
  +----
  +
   ==== Multi-line Version Info
   The `version` may specify multiple Strings. Each will be printed on a separate line.
   
  -[source,java]
  +.Java
  +[source,java,role="primary"]
   ----
   @Command(version = { "Versioned Command 1.0", "Build 12345", "(c) 2017" })
  -class VersionedCommand { ... }
  -----
  +class VersionedCommand { /* ... */ }
  +----
  +
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +@Command(version = ["Versioned Command 1.0", "Build 12345", "(c) 2017"])
  +class VersionedCommand { /* */ }
  +----
  +
   The `CommandLine.printVersionHelp(PrintStream)` method will print the above as:
   
   ----
  
positive.code: 
  ==== Injecting `CommandSpec` Into a `IVersionProvider`
  
  From picocli 4.2.0, `IVersionProvider` implementations can have `@Spec`-annotated fields. If such a field
  exists, picocli will inject the `CommandSpec` of the command that uses this version provider.
  This gives the version provider access to the full command hierarchy,
  and may make it easier to implement version providers that can be reused among multiple commands.
  
  For example:
  
  [source,java]
  ----
  class MyVersionProvider implements IVersionProvider {
      @Spec CommandSpec spec;
  
negative.code: Usage: <cmd> [OPTIONS] FILES [COMMAND]
  ----
  
  As of picocli 4.0, this can be customized with the `synopsisSubcommandLabel` attribute.
  
  For example, to clarify that a <<Required Subcommands,subcommand is mandatory>>, an application may specify `COMMAND`, without the `[` and `]` brackets:
  
  