mode is
stored verbatim and echoed on every read, so you can branch on it directly.
Open vs fixed amounts
Omitamount (or send "0") for an open session — the payer names the
figure. Bound it with minAmount / maxAmount; both are ignored when amount
is fixed.
A checkout almost always fixes the amount, because you are billing for a
specific thing. A deposit almost never does.