@VisibleForTesting
    public ProtoField(String name, DescriptorProtos.FieldDescriptorProto.Type type, DescriptorProtos.FieldDescriptorProto.Label label, List<ProtoField> fields) {
        this.name = name;
        this.type = type;
        this.label = label;