Keep Pure Lifecycle Decisions Isolated
Context
Membership needs shared date, status and continuity calculations now, and the recorded architecture anticipates other term-based products later.
Decision
This record cites the existing extraction decision. Pure helpers are deterministic, while facade methods can obtain live settings through the adopting domain's hooks; operational persistence remains outside the engine.
Alternatives Considered
Embed lifecycle calculations in Memberships. That would tie reuse to the first adopting domain rather than preserving the recorded extraction boundary. Give the engine its own holding and term tables. Holding identity and term details are domain records; an engine-owned schema would require a different adoption contract.
Consequences
The recorded isolation boundary supports later extraction when another domain adopts terms. The domain owns transactional reads and writes around the engine's decisions. An isolation test checks imports across the module boundary.