This post describes a design for implementing backwards-compatibility in deltashell.
Backwards-compatibility : The ability to open project files written by an older version of the application in the current application.
...
If Deltashell opens an old project it creates a session for that version of the DB. After that all objects are migrated to a new session with the current configuration. Then when the project is saved the database is in a new format.
How does DS know which mapping to use?
...