Thanks. I'm still missing important details with regard to your data structures. Conceptually you need to keep an index of txid to transaction to be able to validate a block and an index of outpoint to spend status to be able to confirm it.
There is this block validation/confirmability table which you explained above, but as far as i understand it points to which transactions are validated/confirmed, not which of their outputs are spent or not.
You also referred to "context" a few times which i'm not sure what it is concretely. If i remember correctly you mentioned you could reorg for ~ free, so this might be related.