Descriptor fields are not subject to change.
Iterating over a map's entry set is faster.
Do not include whether an option is required in a descriptor's toString.