Base class for all objects that can be referenced from a script. This defines an interface for the basics, like using them as containers, querying and modifying properties, adding/removing user properties, deleting the object, Getting a context to run scripts in, sending messages and passing them up the hierarchy, opening a script editor etc.
The bool returns on these methods indicate whether the given object can do what was asked (as in, ever). So if a property doesn't exist, they'd return FALSE. If an object has no contents, the same. Some other calls may return NULL instead of an object for the same reason.
< To find whether this object implements the given message (e.g. to not ask the OS for mouseMoved events unless actually implemented).