Expand description
The gate: whether a built request may be sent, decided once.
Every caller that has a request and a confirmation builds a Plan and
executes what it gets back, rather than testing the flag again. That is what
makes a dry run print the exact bytes a confirmed run sends — they are this
one value.
Nothing here knows about command lines. A CLI reaches it through
the tree module (feature clap), and a Rust caller that wants the same gate over a typed
wrapper calls Plan::decide directly, which is what the finalize-voucher
verb in the example does.