Renaming inputs is currently a painfully awkward process since it takes quite some time for caches to update before those new names become available for use in the UI which is needed to have confidence that you're doing the right thing when updating existing bindings that would be broken by this renaming.
One way to make this experience much better would be to introduce a layer of indirection for all inputs a user adds to `state` ...this might fix the caching problem, but more importantly, it would make it so there's no need to go around and fix all the broken bindings.
eg:
If I create an input `myInput`, you might store it like { id: 'someUUID', name: 'myUniquelyNamedInput' }
All code editors within would then need a way to encode/decode these variables. ie: they'd need to do a lookup when someone types `state.myUniquelyNamedInput` to determine which underlying input id to reference and encode that id in the code.