API CHANGES:
- Added SchedulerAPI access to SetupContext, allowing setup handlers to run world-thread tasks directly without relying on world.execute().
- Added PlatformType enum ("MINECRAFT", "HYTALE") to declare the target platform in module.yml via the new platform field. If omitted, the module is treated as cross-platform.
- Added ModuleInfo.getPlatform() so modules can query their declared platform at runtime.
- Added SetupRequirement enum ("BOUNDS", "SPAWNS", "TIME") and GameModule.getDisabledRequirements() so modules can opt out of default setup requirements. The core skips prompts and validation for disabled requirements.
- Deprecated GameConfig.requiresBounds() and GameConfig.requiresSpawns() in favor of GameModule.getDisabledRequirements().
- Added GameModule.allowJoinInProgress() to let modules declare whether players may join after a match has started in standalone mode. Default: disabled. Party mode always disallows join-in-progress.
- Separated platform-specific menu types into:
- - ui.menu.minecraft (Java/Bedrock menus)
- - ui.menu.hytale (Hytale custom UI pages)
- Legacy ui.menu classes are now deprecated.
- Added experimental HytaleMenuAPI and HytaleMenuActionHandler to register/open HytaleMenuDefinition menus and dispatch module actions from Hytale UI event bindings.
All changes are additive and require no modifications to existing 3.1 modules.