Ability to create individually versioned components

Closer to code the better. I am hoping for a feature that allows you to control versioning over components individually. This is something that maps well to how the code version of a component is managed, and would be great to couple them tightly in order to avoid fragmentation. The idea is to start thinking of Libraries as packages. Bit.dev shows how this works on the code side.

Package > Button v1.0.1

Where/how do you think the versioning should be done? Since people work on the files, the file itself will be often in a “dirty” state between versions.

One could imagine doing named snapshots of a file, which would also be close how e.g. google docs manages versions in a way that one does not need to deal with it if one does not want/need to. I would be not very happy with a git like system as it mismatches how most designers work and is confusing even for many devs.