OptionalamountExplicit sats; supplements/overrides any amount encoded in raw.
Optional Experimentalassets— provisional, see RouteQuote.assets.
Additive: an asset transfer also moves sats, so a 500 USDX request legitimately has both. A rail that cannot deliver assets must REFUSE.
Raw target: bare address/invoice, or a BIP21 URI.
OptionalselectedSpend exactly these virtual outputs, with the meaning
SendParams.selectedVtxos already gives it: taken as given, so a
shortfall is an error rather than a top-up, and ungated like
settle({ inputs }). Normalized, i.e. what getSpendableVtxos() returns.
Only the rails spending the wallet's own coins can honour it (ark,
ark-asset, onchain). A rail funding its payment through a counterparty
picks its own inputs, so it must REFUSE rather than ignore the selection.
Mirrors Recipient: an Arkade address is the same string for BTC and for an asset, so the AMOUNT names the asset, never the target.