# Forms Interface Pattern Migration This migration applies the GovOPlaN interface pattern language to the Forms-owned definition catalogue, package import, and revision editor. Forms owns immutable reusable schemas; Forms Runtime continues to own values, submissions, receipts, and handoff execution. ## Surface Inventory | Surface | Archetype | Consequence class | Contract | | --- | --- | --- | --- | | `/forms` catalogue | Searchable definition library | Filter, export, import, create, or revise | Shared loading/error/empty/permission/help states and stable row actions | | Package import dialog | Consequential package review | Create local draft from external provenance | Assessment, required reason, guarded draft, never implicit publish | | Definition dialog | Versioned definition editor | Create immutable revision | Guarded editor, contextual schema help, explained validation and permission states | | Publication state | Governed lifecycle selector | Publish or retire exact revision | Admin-only availability and explicit lifecycle confirmation | | Field/page/localization editors | Structured schema composition | Change future runtime schema | At least one field, stable ordering, preview, localization and accessibility metadata | ## Consequence And Availability Rules - Every save creates an immutable revision with a reason. Runtime instances retain the exact revision with which they were created. - Publishing permits future authorized use. Retirement prevents future use but does not erase definitions, submissions, receipts, or evidence. - Imported packages become local drafts and retain source provenance. - Missing write or administration authority remains visible with an Access destination; retired definitions show a lifecycle explanation. - Optional Runtime, Portal, Workflow, Case, and Policy behavior remains behind declared interfaces and capabilities. The module uses shared controls, dialogs, blockers, field help, statuses, loading, empty/error states, disabled reasons, confirmations, and unsaved-draft guards. The catalogue now composes `WorkspaceFrame`, `ActionToolbar`, `FilterBar`, and `StatePanel`; equal-column definition/editor groups use `FormGrid`, while field, page, localization, and preview headings use the shared section-header toolbar surface. Core therefore owns viewport, search, state, heading, and narrow-layout geometry. These contracts do not change filter scope, permissions, revision semantics, or publication consequences. English and German catalogues cover the owned route and editor vocabulary. Documentation books belong immediately beside their contextual text. The catalogue uses Core's workspace title and `titleHelp`; the revision dialog uses its title help, and the separate Form meaning label carries semantic help for that exact definition. Field help stays beside its label. This uses Core layout contracts and does not change revision, publication, or runtime ownership.