Just to eliminate confusion, I would pull `_field_mappings` and `_valid_field_keys` out of `AbstractNode`, since that is no longer the only place they are used.