Clearer chained blocks and field name validation

Follow style guide to use {} for chained blocks instead of do-end.  Move
field name validation to a separate iteration over the field names, to
make code clearer and to complain about all unused field names.