//! `maxSize`/`minOccur`/`maxOccur` expand via [`Expression::Card`], and binary relation attributes
//! expand via the same [`binary_relation_constraints`] helper every relation representation's own
//! structural constraints already share -- both routes only work because `Card` and `In` already
//! realisation in this codebase (`Image`/`Defined` have no rules for any function representation,
//! and there is no generic "count of x in mset" operator), so those combinations are only usable
/// `None` if `domain` isn't shaped like one -- binary relation attributes are only ever validated