A condition string decomposed into the three parts an authoring surface
edits: an optional JSON path (absent for direct scalar payloads), the
operator token, and the raw comparand. This is the single authority both
the web and zerocode builders round-trip through, so the two surfaces
assemble identical strings from identical parts.
A condition comparison operator. This enum is the single source of truth for
the operator set: the parser scans its tokens, the evaluator matches on its
variants, and every authoring surface renders the list this enum yields (via
ConditionOp::catalog). Adding an operator here is the only edit needed;
no surface hand-lists operators.