Should we add is_deleted to the civicrm_contribution table?
Despite @JoeMurray's best efforts we DO all contributions to be deleted. We do have precedent on other tables for soft deletions via an is_deleted flag. The difficulty with switching to that is it takes time to filter out possible places of leakage.
However, we have just added is_template to the civicrm_contribution table (#72) on the understanding we will put the time into filtering out leakage over a few releases before starting to use it (& initially not in core) - which makes me wonder if we should add is_deleted & do the work on that at the same time & perhaps add an extension for soft deleting for those who want to be ahead of the game.