This sounds familiar, apart from the showing deleted variables bit?! Properties, ports, triggers, etc. in PraxisLIVE are all instance fields, although you have to explicitly annotate those you want to be exposed / state maintained. So state is not separated from the “sketch” code as far as the user is concerned - you interact with the instance fields as you would normally, and those fields provide a data schema. But on external messaging, code change or project load / save, the CodeContext that wraps the user’s code handles injecting / reading values. Because each iteration of code is a new class with no retained state by default we can make a clear picture of the “world” from one iteration to the next, handle transfer or disposal of state and resources automatically, and do almost all of that asynchronously. Basically this is about turning a major limitation of Java into an asset!
now there’s a whole series of support queries I’m familiar with!