Create Form Requirement
Headers
Request
Required: lifecycle gate to block - must be registered for this parent_record_type - e.g. work_order.arrived | work_order.completed | work_order_assignment.accepted
Optional: bool true|false|1|0 - whether an unsatisfied requirement blocks the transition - default: true (false = advisory)
Required: auto | manual - auto = AutoCreateFormSubmissionsListener materializes a draft submission on the trigger event; manual = staff create the submission from the UI
Required: UUID of the FormTemplate required at this gate - converted to int id by ConvertUuidToId middleware - template must be published
Required: morph alias of the gated record - must be registered in FormGateRegistry by the consuming module - e.g. work_order | work_order_assignment
Optional: narrowing condition string from the Conditions Catalog - e.g. work_order.tag | work_order.customer_type | work_order.service | work_order.specific_record - empty = no narrowing (rule applies to every record of parent_record_type)
Required IF condition kind is ENTITY/TAG/SELF: UUID of the referenced entity - resolved to int id server-side, tenant-scoped
Required IF condition kind is VALUE: scalar to match (e.g. “commercial” for work_order.customer_type) - leave empty for ENTITY/TAG/SELF kinds
Required IF condition kind is ENTITY/TAG/SELF: morph alias of the referenced entity (e.g. tag_type | service | work_order). For SELF must equal parent_record_type

