Wraps a filter expression as the body of an ActionFilter.Code.
Two different authoring surfaces reach this: a workflow's WorkflowEntityEventTrigger.filter and
a Record Process's OnChangeFilter. Both mean the same thing — "only fire when this is true of
the change" — so both compile to one shape rather than each inventing its own dialect, and a user
who learns one has learned the other.
It also lives on both sides of the check/store divide: the validator compiles the result to prove
it parses, and the reconciler persists exactly that string. Anything less than a shared function
admits the failure where a spec validates and then fails closed forever at runtime.
The shorthands are destructured from the context rather than injected as separate function
arguments, so an author's expression sees exactly the names the field's documentation promises
and nothing else leaks in.
Wraps a filter expression as the body of an
ActionFilter.Code.Two different authoring surfaces reach this: a workflow's
WorkflowEntityEventTrigger.filterand a Record Process'sOnChangeFilter. Both mean the same thing — "only fire when this is true of the change" — so both compile to one shape rather than each inventing its own dialect, and a user who learns one has learned the other.It also lives on both sides of the check/store divide: the validator compiles the result to prove it parses, and the reconciler persists exactly that string. Anything less than a shared function admits the failure where a spec validates and then fails closed forever at runtime.
The shorthands are destructured from the context rather than injected as separate function arguments, so an author's expression sees exactly the names the field's documentation promises and nothing else leaks in.