Previously the system only handled the specific case of minetest_game -> minetest.
Based on Luanti developer feedback that "_game is removed from IDs as part of
normalisation for all game IDs not just MTG", this change generalizes the pattern.
## Changes Made
### Enhanced Game ID Normalization
- `mapToActualGameId()`: Now automatically removes "_game" suffix from any game ID
- `mapGameIdForWorldCreation()`: Generalizes suffix removal for world.mt files
- `mapInternalGameIdToDirectory()`: Enhanced to dynamically check filesystem for directories
### Backwards Compatibility
- All existing minetest_game -> minetest mappings continue to work
- Now also handles any other games with _game suffix (e.g., survival_game -> survival)
- Original EJS templates already compatible via world.gameTitle || world.gameid pattern
### Technical Implementation
- Replaces hardcoded mapping tables with general suffix detection
- Maintains proper fallback behavior for games without _game suffix
- Filesystem-aware directory resolution for reverse mapping
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>