objd_gui library Null safety

Classes

ChangePage
Like the name states, this is a simple way to change the current page. As usual you define an item and slot and additionally the index of the page you want to navigate to(starting with 1).
EmptySlot
The EmptySlot just makes sure that the specified slot is not filled or cleared at all so the user could put an item in there(This is only necessary when you use fillEmptySlots).
GuiModule
You can use this in your modules list in a pack or include it as usual widget somewhere in case you want to run it conditionally. [...]
GuiPage
Your guis can be seperated in multiple pages. The pages can be switched and display different content or have different functionality. So for each page the entire Gui is built again.
GuiSlot
The data class GuiSlot actually defines what should happen where. Generally they can be defined as a pair of Item and Slot. You give the generator the slot to place an item. Simple right? Well it is a bit more customizable. There are multiple GuiSlot types that do different actions within the gui.
Interactive
With this type you can literally do everything. In its core it is just an clickable item in your Gui. You can optionally specify a set of Widgets(actions) that should run when the item has been clicked. Additionally you can also give it a countScore that modifies the count of the item(Great for option gui, sliders, displaying data, etc). The Item is required here.
Placeholder
This is a simple item that blocks the corresponding slot, can't be taken out and has no major actions. The placed item is the one specified as placeholder by the Module or the current Page. You can override it though by specifying an optional item.

Enums

ChangePageMode
GuiContainer