The model
Each layer answers a different question instead of pretending one mechanism can protect everything.
Versions protect intentional rewrites
You want to try another answer without destroying the previous one.
Trash protects structural deletion
You removed a section or branch and later realize the deletion was a mistake.
Backup and history protect project state
You need another copy or an earlier state after a broader problem.
Integrity check protects against false confidence
Having a file is not the same as knowing that its internal structure is coherent.

Layering makes recovery proportional
A typo does not need a full restore. A bad rewrite does not need a backup. A damaged project should not depend on text versioning. Use the smallest recovery mechanism that matches the failure.
Version vs backup · Why integrity check? · Why keep assets with the project?