Use asserted for validations.
Add support for required attributes.
Add information about required attributes to docs.
Add tests.