validations attempts
autogenerate invariants for always present attrs