UIContext contains the "globals" of the UI. It also provides additional APIs for UIElement.
Work in progress. An ensemble of calls UIElement are allowed to make, that concern the whole UI. Whenever an API call makes sense globally for usage in an UIelement, it should be moved to IUIContext.
Official dplug:gui Wren extension. Wren state needs to be stored globally for the UI.
For a UIElement-derived class, this UDA means its members need to be inspected for registering properties to the script engine.
For a member of a @ScriptExport class, this UDA means the member can is a property to be modified by script (read and write).
UIContext holds global state for the whole UI (current selected widget, etc...).