# Distribution Lists Interface Pattern Migration This migration applies the GovOPlaN interface pattern language to the distribution-list catalogue, revision editor, expansion preview, snapshot evidence, and reusable picker. ## Surface Inventory | Surface | Archetype | Consequence class | Contract | | --- | --- | --- | --- | | `/distribution-lists` catalogue | Governed work queue | Select, create, or delete a list | Shared loading, empty, permission, disabled-reason, and help states | | Definition editor | Consequential definition editor | Save immutable revision | Guarded list and nested-entry drafts with contextual field semantics | | Expansion preview | Evidence preview | Resolve current saved revision | Explicit exclusions, provider availability, provenance, and decision explanations | | Frozen snapshots | Evidence register | Retain exact expansion | Immutable recipients, exclusions, source revisions, parameters, provenance, and hash | | Distribution-list picker | Shared object selector | Reference a list | Searchable selector with contextual definition help | ## Consequence And Availability Rules - Saving creates an immutable list revision; previews and snapshots use only a saved revision. - Include, exclude, and manual-override entries have distinct semantics. Manual override requires an auditable reason. - Freezing is confirmed because it creates retained evidence consumed by other modules. Deleting the reusable definition does not rewrite retained snapshots. - Provider absence is explained and never turns an optional integration into a hard dependency. - Missing write permission and incomplete or unchanged drafts expose a reason and required next action instead of a silent disabled control. Backend and WebUI manifests publish the same surface identifiers. English and German catalogues cover the module-owned interaction vocabulary, and contextual help resolves through manifest documentation rather than detached UI guidance.