Ways to Delete Messages in a Matrix Federation?

The topic of purging obsolete/old/unwanted content is an important one for the Matrix ecosystem, as for other distributed systems. It’s not easy for developers and users to get our heads around all the desired and possible meanings of removal — from a user selectively removing items just from their own view, through servers garbage-collecting unreachable content, right up to a federation admin asking all servers in their federation to remove content and push that request out to their client apps which might honour the request.

It would be helpful if we could develop or refer to a set of descriptions of the different scenarios, that link the user’s point of view on the one hand to the system/protocol/server point of view on the other hand, with analogies to more familiar technologies like paper mail and email. Probably someone in the distributed systems world has already written this up. What would be very helpful is having some labels/terms/URIs to refer to them.

Without that, we are always going to be asking what a particular “Delete room” or “Delete user” or “Delete message” API or UI button really means. Without that, we are always going to be wrongly guessing what a user or another admin really wants to achieve.

Anybody know of such a write-up that we could borrow?