Fields
- name: string
- group: int
- kind: Field_Kind
- type_name: string
- u16, s64, float64, or the enum's name
- members: [..] string
- ENUM: the member names, in pattern order
- words: [..] string
- ENUM: each word of the alternation...
- word_members: [..] int
- ...and the member it becomes
- optional: bool
- may not take part in a match