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);
  }
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