# GovOPlaN Forms **Repository type:** module (domain). `govoplan-forms` owns reusable, immutable form definitions, validation rules, and form package fragments. Submission runtime behavior remains in `govoplan-forms-runtime`. The module persists exact tenant-bound revisions, exposes bounded catalogue, history, and write APIs, and provides `forms.definitions` for consumers. A published revision can be used by Forms Runtime without importing Forms tables; existing submissions keep their exact revision when a new schema is published. The `/forms` designer uses shared application controls to create, revise, publish, retire, search, and inspect definitions. It edits field order, types, choices, validation constraints, draft behavior, attachment and signature requirements, policy references, and permitted handoff kinds. Saving always creates an exact immutable revision; it never mutates a published schema in place. The designer also supports multi-page/section layout, bounded conditional visibility expressions, localized labels/help/options/page titles, fallback locale, and accessibility metadata. Server validation rejects unknown fields, incompatible operators, placement errors, and condition cycles. Verified configuration-package fragments can be assessed and imported as a new local draft with source provenance rather than silently becoming active. Definition writes use optimistic concurrency. Replaying the same object and revision is safe only when the payload is identical. Published definitions may be retired but not silently returned to draft. Focused verification: ```bash PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src \ /mnt/DATA/git/govoplan/.venv/bin/python -m unittest discover -s tests ``` See [docs/FORMS_BOUNDARY.md](docs/FORMS_BOUNDARY.md) for the boundary decision.