anchor.diff:  
   For example:
   
  -[source,java]
  +.Java
  +[source,java,role="primary"]
   ----
   class Ambiguous {
       @Parameters(description = "The file (required).")
  
positive.code:     String[] strings;
  }
  ----
  A `MissingParameterException` is thrown when fewer than the minimum number of parameters is specified on the command line.
  
  Once the minimum number of parameters is consumed, picocli will check each subsequent command line argument to see whether it is an additional parameter, or a new option. For example:
  
negative.code: 
  An example use case is an option that switches on logging when present, with an optional value to set the log level. For example:
  
  .Java
  [source,java,role="primary"]
  ----
  @Option(names = "--syslog", defaultValue = "OFF", fallbackValue = "INFO",
      description = {
          "When specified without arguments, start sending syslog messages at INFO level.",
          "If absent, no messages are sent to syslog.",
          "Optionally specify a severity value. Valid values: ${COMPLETION-CANDIDATES}."})
  MyLogLevel syslogLevel;
  ----
  
  .Kotlin
  [source,kotlin,role="secondary"]
  ----
  @Option(names = ["--syslog"], defaultValue = "OFF", fallbackValue = "INFO",
      description = [
          "When specified without arguments, start sending syslog messages at INFO level.",
          "If absent, no messages are sent to syslog.",
          "Optionally specify a severity value. Valid values: \${COMPLETION-CANDIDATES}."])
  lateinit var syslogLevel: MyLogLevel
  ----
  
  Another example use case is <<Optionally Interactive,password options>>.
  
  ==== Optional Parameter Limitations
  