Each OUTPUT row carries name · type · expression. The expression is optional free text (generally ANSI SQL,
not validated); serialize-only — stored on out.expression, read by the transform code from
CONTEXT.options. Edges populate in[]; multiple edges into one output column are now
allowed. Empty expression = plain copy.
upper(name)) · amount+tax→total (amount + tax).