TIL about domains in postgres.
The docs make an interesting point that the domain itself shouldn't define nullability, rather nullability should be defined one level above, where the domain gets used. Because null values can sneak in via e.g. an outer join