Prop315: Mark various dir-spec fields as required
This branch implements proposal 315 by turning a number of fields that we were formally optional into required fields.
The bulk of this branch is spent adjusting outdated unit tests that tried to generate or manipulate documents in the old formats.
Closes #40132 (closed)