As @dqkqd observes:
There are parse_field and parse_list_field because we have two representation for Field:
- In
Struct, Union, Map, RunEndEncoded: "a": nullable Int64
- In
List types: nullable Int64, field: 'a'
I don't think having two different representation for Field is a wise choice,
but I don't change it in this PR.
Originally posted by @dqkqd in #8765 (comment)