In the absence of an answer from on high, I'll give my knowledge on the subject: 1) It is only changed by API scripts. If you want to reset it, you should set it to an empty object: state = {}; scripts expect it to be an object. Finding that it is something else would likely cause them to crash. 2) Ready fires after the sandbox is fully loaded. All your other scripts' objects will have been created by that point, which makes it ideal for second stage linking of scripts. There is no guarantee as to the order that the on('ready',...) will fire between your scripts, but you can be assured that any enabled script has been executed, creating whatever public objects they create. Personally, each of my scripts creates a single object in the global namespace that does nothing but create static data and functions, then register an on('ready',...) event that triggers setting up dynamic structures, finding other installed scripts it depends on, and registers for events with the on() function.