Prevent a particular mark to be deleted

This question is similar to others:

  1. How can I disable the option to delete a custom node from prosesmirror?
  2. How to prevent node deletion?
  3. The content of non-editable node is still editable
  4. ProseMirror and Uneditable content in the document
  5. Whats an example of the minimal code required to undo a transformation?

This would be a quite handy feature to take control over transactions and to be able to allow/disallow action for each part (Node, TextNode, Mark, etc.) inside filterTransaction.