Fills in section, block, template, and instruction productions in the abnf file.
This abnf moves the ignored whitespace surrounding names to the instructions. Mostly, because I didn't notice until later and interpreted these productions as forbidding that whitespace. I'll defer, if the other style is preferred.
I've, intentionally, done the reverse by moving surrounding ignored whitespace from each instruction operator to the trimmed instruction production.
I wasn't sure what the prevailing ordering scheme was, so I put block and template on the bottom.
Fills in missing abnf productions for block, template, and instruction. Adds more to section and name. Uses braced terms to indicate optionality. (This is redundant for optional-whitespace, which itself may be of no length; but clarifies intent.) Enumerates trimmed instructions. Notes that these may start or end with ignorable whitespace, to avoid repeating so for each instruction. Distinguishes these from the raw text within a block, which retains outside whitespace. Changes fieldset entry to allow escaped names. Both enojs and enopy tokenize either name style, so this may have been a typo. Ensures names can have a template clause, just the operator, or the name operator and a value. Permits whitespace between the list operator and its value. Permits empty line continuations.
Fantastic! I especially like how all whitespace is marked optional everywhere, this really makes it more clear what's going on. I did some light tweaks on what caught my eye right away (probably changed my own stuff from before haha), but this is all good stuff really. :) Thanks a ton, good progress made here thanks to your help!