First off, I think you want to be running a filesystem that supports versioning and snapshots. If those features aren't available in the source operating system, then I think nothing else really matters.
If you want a filesystem that can support snapshots, my preference would be ZFS. I'm not sure if ZFS can also do versioning outside of snapshots.
The recent macOS file systems can do versioning, and Time Machine is how you would access earlier versions. But they can't do snapshots, so far as I know.
But snapshots are less critical for building a backup system -- you can live without those, although it can be painful. Versioning would be a bigger win for desktop users.
I have snapshots (hourly/daily/weekly) on my ZFS shares, but that doesn't fully replace the versioning that I was looking for. NILFS (https://nilfs.sourceforge.io/en/index.html) is something that was a lot closer to what I wanted (and is accepted into the kernel) but it wasn't as feature complete as I wanted it to be.