saving projects from extensions

With regard to libraries getting broken, going forward I think it would be a good idea to give libraries a version number. Mark each library block with the library name and version, as well as a flag that's set if the user modifies the block definitions.

If old library blocks are detected, give the user a prompt like:
This project uses an old version of LIBRARY. Update?
or
This project uses an old, modified version of LIBRARY. Update?

For existing libraries which are broken in old projects, maybe detect them by block name or by a hash of the block definition, and do the same thing.