I'd like to ask for feedback:
1. Does this UTXO structure look reasonable?
2. Am I missing any important fields?
3. Is there anything you would recommend changing before I continue with transaction validation and mining?
I'm still learning, so any suggestions are appreciated.
Thank you.
1) Yes it does to me but with a little tweak: I'd recommend you remove this
The reason is that it feels redundant. This is an unspent transaction output (UTXO) meaning it is unspent; spent will never be true, so there is no need for it.
2) Yea, I'd suggest block_height for proper identification.
3) Just the 2 above, I know some other members might have more suggestions.