parquet-column/src/main/java/org/apache/parquet/schema/ConversionPatterns.java
private static GroupType listWrapper(Repetition repetition, String alias, LogicalTypeAnnotation logicalTypeAnnotation, Type nested) {
    if (!nested.isRepetition(Repetition.REPEATED)) {
      throw new IllegalArgumentException("Nested type should be repeated: " + nested);
    }
    return new GroupType(repetition, alias, logicalTypeAnnotation, nested);
  }
private static GroupType listWrapper(Repetition repetition, String alias, LogicalTypeAnnotation logicalTypeAnnotation, Type nested) {
    if (!nested.isRepetition(Repetition.REPEATED)) {
      throw new IllegalArgumentException("Nested type should be repeated: " + nested);
    }
    return new GroupType(repetition, alias, logicalTypeAnnotation, nested);
  }
private static GroupType listWrapper ( Repetition repetition , String alias , LogicalTypeAnnotation logicalTypeAnnotation , Type nested ) { if ( ! nested . isRepetition ( Repetition . REPEATED ) ) { throw new IllegalArgumentException ( "Nested type should be repeated: " + nested ) ; } return new GroupType ( repetition , alias , logicalTypeAnnotation , nested ) ; }
to preserve the difference between empty list and null when optional

@param repetition   repetition for the list or map
@param alias        name of the field
@param logicalTypeAnnotation logical type for the list or map
@param nested       the nested repeated field
@return a group type
to preserve the difference between empty list and null when optional