The list makes it easier to pass it around across the different parse structs and finally the variable. With arrays the parsing code is a little uglier, for instance, I had to make state_block_list a `struct parse_variable_def` instead of a mere `struct list`, but I agree it can make the rest of the code that uses this field simpler.
I find that preferable actually; I don't like passing untyped lists around.