The problem I needed to solve
After Hokm, Dalo needed a shared entry point. I did not want coins, games and rewards each interpreting save data through independent display logic.
Implementation in this snapshot
MainMenuPresenter.BuildUiData creates header, games, coin packs, weekly rewards and achievements. It reads MetaCatalog and economy/statistics services rather than button labels.
The design decision and its cost
Presentation data lets me describe the menu without turning its presenter into a collection of GameObjects. Invalid definitions are also filtered while lists are built.
Current boundaries
The presenter does not draw the screen by itself. Binders, prefabs and scene references still matter; an absent catalog can produce empty menu data rather than an automatically complete interface.
Menu data and the actual scene connector
A Hokm entry card may need entry cost, played games and wins together. BuildGames obtains those values from GameDefinition, StatisticsService and CurrencyService and packages GameCardUiData. CanAfford depends on coins rather than colored button text. A balance change therefore needs refreshed data and UI application. This separates incorrect affordability calculation from failure to display the correct result. BuildUiData does not purchase entry or load a scene.
BuildWeeklyStreakRewards creates entries for days one through seven, allowing a null Reward when no definition exists. BuildAchievements combines progress, target, completion and claimed status with achievement data. This does not prove one binder displays every section. game.unity references StaticMainMenuSceneConnector, which uses CurrentUiData for RefreshHeader and RefreshGameCards. A broad presenter does not mean that this connector actively renders every possible view.
StaticMainMenuSceneConnector connects to existing scene objects and subscribes to coin and statistics changes, removing those subscriptions on destruction. Paths such as Top and the Content location matter to reference discovery. This preserves scene-authored design but makes hierarchy changes a wiring concern. A technical account needs both data production and its actual consumer. Citing only the older MainMenuSceneBinder would not describe the observed path accurately; file existence and scene references are different evidence.
What this stage taught me
For me, the main menu marked the product layer’s beginning. Hokm rules stayed in place while a new layer connected players to games and their surrounding systems.




