anchor.diff:  import java.io.File;
   
   class Convert {
  -    @Option(names = "-patterns"); // no `type` annotation attribute needed
  -    Pattern[] patterns;           // for array fields
  -
  -    @Parameters(type = File.class)
  +    @Option(names = "-patterns", description = "the regex patterns to use");
  +    Pattern[] patterns;
  +
  +    @Parameters(description = "the files to convert")
       List<File> files;
   }
   ----
   
   [source,java]
   ----
  -String[] args = { "-patterns", "a*b", "[a-e][i-u]", "--", "file1.txt", "file2.txt" };
  +String[] args = { "-patterns", "a*b", "-patterns", "[a-e][i-u]", "file1.txt", "file2.txt" };
   Convert convert = CommandLine.populateCommand(new Convert(), args);
   
   // convert.patterns now has two Pattern objects
  
positive.code: import java.util.concurrent.TimeUnit;
  
  class MapDemo {
      @Option(names = {"-p", "--proxyHost"}, type = {Proxy.Type.class, InetAddress.class});
      Map<Proxy.Type, InetAddress> proxies;
  
      @Option(names = {"-u", "--timeUnit"}, type = {TimeUnit.class, Long.class});
      Map<TimeUnit, Long> timeout;
  }
  ----
  
negative.code: NOTE: If a collection is returned from a type converter, the _contents_ of the collection are added to the field, not the collection itself.
  
  ==== Maps
  Picocli v1.0 introduced support for `Map` fields similar to Java's system properties `-Dkey=value` or Gradle's project properties `-Pmyprop=myvalue`.
  
  `Map` fields may have any type for their key and value
  as long as a <<Strongly Typed Everything,converter>> is registered for both the key and the value type.
  Key and value types are inferred from the map's generic type parameters.
  For example:
  
  [source,java]
  ----
  