# The brick's process — its workflows, in the shape of a module spec's `workflows:` (pattern.md §15).
# EXAMPLE.declare_process("process.yaml") serves it as BPMN 2.0: GET /process/bpmn (show_process_bpmn), the
# diagram the customer sees and signs. Each transition's `key` is frozen once signed: it is the BPMN id
# (Task_<key>), and scenario paths, sign-offs and change items refer to it.
version: 1
actors:
- { id: rep, name: Sales rep }
- { id: customer, name: The customer, external: true }
workflows:
- entity: quote
states: [draft, sent, accepted]
transitions:
- { key: draft_quote, from: none, to: draft, by: rep, effect: "a quote with lines, editable" }
- { key: send_quote, from: draft, to: sent, by: rep, gate: "at least one line", effect: "frozen: copy it to change it" }
- { key: accept_quote, from: sent, to: accepted, by: customer, effect: "the customer's acceptance is recorded" }