Output Selection
While the majority of bitcoin wallets abstracts the action of sending bitcoin by just requiring an amount and a send address, the process of sending bictoin can be leveraged to retain more control.
Allowing the selection of which outputs to spend can offer the user the ability to better track the history of the bitcoin received. Because reusing addresses leaves a lot of information exposed on the blockchain, standard HD wallets generate new addresses every-time the user needs receive bitcoin.
By associating each address with a separate transition, we can treat each receive address as an output assuming not more than one transaction was sent to any one address. This requires adding a step before sending where the user is required to select from which address or output to spend from.
Bitcoin is sent by spending one or more outputs which the sender controls. The private key used to create the address that received the bitcoin the transaction can sign transactions. One transaction can have multiple inputs and outputs but for the purposes of the UX for sending, we only need focus on managing one or more outputs and spending all into one single address.
References
https://blog.bitgo.com/utxo-management-for-enterprise-wallets-5357dad08dd1
https://blog.lopp.net/the-challenges-of-optimizing-unspent-output-selection/
https://learnmeabitcoin.com/technical/vout
https://learnmeabitcoin.com/technical/input
https://bitcoin.stackexchange.com/questions/1077/what-is-the-coin-selection-algorithm