anchor.diff:  By default, an `UnmatchedArgumentException` is thrown when a command line argument cannot be assigned to an option or positional parameter.
   For example:
   
  -[source,java]
  +.Java
  +[source,java,role="primary"]
   ----
   class OnlyThree {
       @Parameters(arity = "3") String[] values;
   }
   ----
  +
  +.Kotlin
  +[source,kotlin,role="secondary"]
  +----
  +class OnlyThree {
  +    @Parameters(arity = "3") lateinit var values: Array<String>
  +}
  +----
  +
   The command has only one annotated field, `values`, and it expects exactly three arguments,
   so the following input results in an `UnmatchedArgumentException`:
   ----
  
positive.code: 
  The example below demonstrates how to implement `find -exec` using this API:
  
  [source,java]
  ----
  @Command(name = "find")
  class Find {
  
negative.code:             // `find -exec` semantics: stop processing after a ';' or '+' argument
              if (";".equals(arg) || "+".equals(arg)) {
                  break;
              }
          }
      }
  }
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  @Command(name = "find")
  class Find {
      @Option(names = ["-exec"], parameterConsumer = ExecParameterConsumer::class)
      var list: List<String> = ArrayList()
  }
  
  class ExecParameterConsumer : IParameterConsumer {
      override fun consumeParameters(args: Stack<String>, argSpec: ArgSpec, commandSpec: CommandSpec) {
          val list = argSpec.getValue<MutableList<String>>()
          while (!args.isEmpty()) {
              val arg = args.pop()
              list.add(arg)
  
              // `find -exec` semantics: stop processing after a ';' or '+' argument
              if (";".equals(arg) || "+".equals(arg)) {
                  break
              }
          }
      }
  