I think the best option is to have a configurable window of time, if the same application creates versions within that window, they get squashed into just the latest by the app, with a maximum total... eg.: "merge all saves less than 5 minutes apart, but keep at least one version per 30m" or such. Configurable because I expect some tuning required. I think this strategy is most generic and safe (eg. wrt to multi user stuff) - but, and this is a huge "but", it does absolutely nothing for the server load (just, storage space), it's purely UX cleanup
I think the best option is to have a configurable window of time, if the same application creates versions within that window, they get squashed into just the latest by the app, with a maximum total... eg.: "merge all saves less than 5 minutes apart, but keep at least one version per 30m" or such. Configurable because I expect some tuning required. I think this strategy is most generic and safe (eg. wrt to multi user stuff) - but, and this is a huge "but", it does absolutely nothing for the server load (just, storage space), it's purely UX cleanup