The Non-DAW comprises a modular system. It would be convenient for the author and the users alike if the state of Non-DAW's components and other, entirely separate, programs could be managed together as a coherent whole. The LASH system appears, at first glance, to support this kind of arrangement. However, the current LASH API is overly complex and lacking in what this author considers to be a basic level of functional maturity. It is this confusion, I believe, which has resulted in the poor adoption of LASH and its subsequent stagnation.
Non-DAW, and other complex programs with large state which cannot be held in RAM all at once, require a few things that LASH doesn't currently provide. These needs include the following:
Additionally, the following would be required in order to fully integrate with LASH (transparently to the user).
Some of the above are already possible to some extent with the current API, but complicated greatly by the artificial division of the API into client and control portions.
I would also like to see the preferred behavior of new/save/load operations in all clients specified by LASH so as to avoid confusion and potential data loss. Should any LASH client be permitted to save or load to/from disk it's own state without informing LASH? This may seem harmless when the program state consists of a single file--as it is assumed that a copy of that file will be saved by the program in the LASH project directory whenever a LASH save is next performed. But now the user has two (differing) copies of his file--and he isn't sure which one he really edited--or where it is on disk. The problem becomes even more serious when the program state includes a directory filled with gigabytes of audio sources...
Is it really advisable for LASH clients to operate on their state, which is supposedly under the control of LASH, as if it was theirs alone--without informing LASH of their activities? I don't necessarily know the answer to this question, but I do know that LASH needs to make a recommendation of some kind regarding the expected behavior--whatever it may be.
There are also many things which LASH could do to enhance the integration experience, but doesn't.
These include, but are by no means limited to, the following:
Some of these have been mentioned before and I've omitted many potential improvements and design changes which I consider less important.