__post_init__ runs after the generated constructor, which is where cheap invariants belong.
Tag
Snippets tagged validation
Matches a date, optionally with a time and a zone. Deliberately strict about separators.
Describes the shape of a payload so it can be validated before anything else touches it.