anchor.diff:  }
   ----
   
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +class MyVersionProvider : IVersionProvider {
  +    @Spec
  +    lateinit var spec: CommandSpec
  +
  +    override fun getVersion(): Array<String> {
  +        return arrayOf("Version info for " + spec.qualifiedName())
  +    }
  +}
  +----
   
   == Usage Help
   === Compact Example
  
positive.code: ----
  
  ==== Version Info With Variables
  Since 4.0, the version strings may contain <<Variable Interpolation,system properties and environment variables>>. For example:
  [source,java]
  ----
  @Command(version = {
      "Versioned Command 1.0",
      "Picocli " + picocli.CommandLine.VERSION,
      "JVM: ${java.version} (${java.vendor} ${java.vm.name} ${java.vm.version})",
      "OS: ${os.name} ${os.version} ${os.arch}"})
  class VersionedCommand { ... }
  ----
  Depending on your environment, that may print something like:
  
  ----
  
negative.code: 
  For example:
  
  .Java
  [source,java,role="primary"]
  ----
  class VersionProviderWithVariables implements IVersionProvider {
      public String[] getVersion() {
          return new String[] { "${COMMAND-FULL-NAME} version 1.0" };
      }
  }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  class VersionProviderWithVariables : IVersionProvider {
      override fun getVersion(): Array<String> {
          return arrayOf("\${COMMAND-FULL-NAME} version 1.0")
      }
  }
  ----
  
  The above example version provider will show the fully qualified command name (that is, preceded by its parent fully qualified command name)
  