This is really cool. You probably already know this, but here's another cool thing about document.kmvar:
If I run a prompt asynchronously and try to use window.KeyboardMaestro.GetVariable() to get the value of a local variable, it quite reasonably returns an empty string.
BUT, the local variables are in kmvar.
So if I want to pass some starting parameters to an async prompt, I can still do it. Very cool.
Thanks for sharing this.