@idosgames/mcp 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/cli.js +2 -2
  2. package/package.json +1 -1
  3. package/registry/host.json +69 -25
  4. package/registry/index.json +360 -412
  5. package/registry/modules/board-game.json +7 -7
  6. package/registry/modules/{character-ui.json → character.json} +8 -11
  7. package/registry/modules/chat.json +71 -0
  8. package/registry/modules/{craft-ui.json → craft.json} +8 -11
  9. package/registry/modules/{deal-offer-ui.json → deals.json} +7 -10
  10. package/registry/modules/{events-ui.json → events.json} +8 -11
  11. package/registry/modules/{friends-ui.json → friends.json} +8 -11
  12. package/registry/modules/idle-rpg.json +6 -6
  13. package/registry/modules/{inventory-ui.json → inventory.json} +9 -12
  14. package/registry/modules/{referral-ui.json → invite.json} +8 -11
  15. package/registry/modules/{leaderboard-ui.json → leaderboard.json} +8 -11
  16. package/registry/modules/marketplace.json +72 -0
  17. package/registry/modules/mini-game.json +69 -0
  18. package/registry/modules/{profile-ui.json → profile.json} +8 -11
  19. package/registry/modules/{pvp-ui.json → pvp.json} +9 -12
  20. package/registry/modules/{rewards-ui.json → rewards.json} +8 -11
  21. package/registry/modules/{season-ui.json → season.json} +8 -11
  22. package/registry/modules/{store-ui.json → store.json} +9 -12
  23. package/registry/modules/{tutorial-ui.json → tutorials.json} +8 -11
  24. package/registry/modules/voxelcraft.json +2 -446
  25. package/registry/modules/workshop.json +11 -6
  26. package/registry/skills/dev-test-loop.json +1 -1
  27. package/registry/skills/idosgames-compose-modules.json +2 -2
  28. package/registry/skills/idosgames-getting-started.json +2 -2
  29. package/registry/skills/idosgames-module-contract.json +2 -2
  30. package/registry/skills/idosgames-project-structure.json +1 -1
  31. package/registry/skills/idosgames-ui-kit.json +2 -2
  32. package/registry/skills/push-notifications.json +1 -1
  33. package/registry/skills/workshop-system.json +1 -1
  34. package/registry/modules/chat-ui.json +0 -74
  35. package/registry/modules/game-hud.json +0 -104
  36. package/registry/modules/marketplace-ui.json +0 -75
  37. package/registry/modules/showcase.json +0 -92
@@ -1,355 +1,25 @@
1
1
  {
2
- "generatedFromCommit": "2ab0fc3b95730d188c5b6a961593191f5222a7e1",
2
+ "generatedFromCommit": "5a4126dddd642ddea7c090411d05648e8f3ce79c",
3
3
  "runtimePackages": {
4
4
  "@idosgames/core": "0.19.0",
5
- "@idosgames/wallet": "0.5.1",
6
- "@idosgames/module-sdk": "0.5.0",
5
+ "@idosgames/wallet": "0.5.2",
6
+ "@idosgames/module-sdk": "0.6.0",
7
7
  "@idosgames/react": "0.3.0",
8
- "@idosgames/app-shell": "0.6.0"
8
+ "@idosgames/app-shell": "0.7.0"
9
9
  },
10
10
  "host": {
11
- "id": "host-starter",
12
- "fileCount": 22
11
+ "id": "base",
12
+ "fileCount": 33
13
13
  },
14
14
  "modules": [
15
15
  {
16
- "id": "board-game",
17
- "name": "Board Game",
18
- "type": "template",
19
- "engine": "three",
20
- "genre": "board",
21
- "summary": "3D tycoon board game: roll dice, move around the board, buy and upgrade city tiles.",
22
- "description": "A turn-based property board game rendered in Three.js with a React overlay. Players roll dice, move around a looping board, and buy, sell and upgrade tiles to build a city and earn income. The board layout, tiles and interactions are data-driven, so the theme and economy are easy to re-skin.",
23
- "provides": [
24
- "turn-based dice movement around a looping board",
25
- "buy / sell / upgrade board tiles",
26
- "player-vs-player property economy",
27
- "3D board rendering with a React HUD overlay",
28
- "data-driven board layout and tile configuration"
29
- ],
30
- "tags": [
31
- "board",
32
- "tycoon",
33
- "3d",
34
- "turn-based",
35
- "economy",
36
- "three"
37
- ],
38
- "media": {
39
- "image": "https://cloud.idosgames.com/drive/modules/board-game/cover.png",
40
- "video": "https://cloud.idosgames.com/drive/modules/board-game/demo.mp4"
41
- },
42
- "demoUrl": "https://cloud.idosgames.com/drive/modules/board-game/demo/",
43
- "author": {
44
- "name": "iDos Games",
45
- "url": "https://idosgames.com"
46
- },
47
- "version": "0.1.0",
48
- "events": {
49
- "listens": [
50
- {
51
- "topic": "idle-rpg:character-upgraded@1",
52
- "why": "shows an 'Idle RPG hero reached Lv N' news chip in the board HUD (optional — works without idle-rpg)"
53
- }
54
- ]
55
- },
56
- "dependencies": {
57
- "@idosgames/core": "0.19.0",
58
- "@idosgames/module-sdk": "0.5.0",
59
- "@idosgames/react": "0.3.0",
60
- "@idosgames/wallet": "0.5.1",
61
- "@tanstack/react-query": "5.101.2",
62
- "react": "19.2.7",
63
- "three": "0.185.1",
64
- "viem": "2.55.2",
65
- "wagmi": "3.7.2"
66
- },
67
- "fileCount": 27,
68
- "contentHash": "a7a360f0ecb5106bb5c5565d06b13845a8f1838bdb475d626f33ca89c73cec29"
69
- },
70
- {
71
- "id": "idle-rpg",
72
- "name": "Idle RPG",
73
- "type": "template",
74
- "engine": "phaser",
75
- "genre": "idle-rpg",
76
- "summary": "Idle RPG: heroes auto-battle and earn resources over time, with upgrades and offline progress.",
77
- "description": "An incremental idle RPG built on Phaser. Heroes fight automatically, generate currency and loot over time, and keep progressing while the player is away. Includes an upgrade loop and offline-income accrual, so it fits any 'tap to grow / auto-battler / idle economy' request.",
78
- "provides": [
79
- "auto-battling heroes",
80
- "idle resource generation over time",
81
- "offline income accrual",
82
- "upgrade / progression loop",
83
- "2D sprite rendering (Phaser)"
84
- ],
85
- "tags": [
86
- "idle",
87
- "rpg",
88
- "incremental",
89
- "auto-battler",
90
- "phaser",
91
- "2d"
92
- ],
93
- "media": {
94
- "image": "https://cloud.idosgames.com/drive/modules/idle-rpg/cover.png",
95
- "video": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo.mp4"
96
- },
97
- "demoUrl": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo/",
98
- "author": {
99
- "name": "iDos Games",
100
- "url": "https://idosgames.com"
101
- },
102
- "version": "0.1.0",
103
- "events": {
104
- "emits": [
105
- {
106
- "topic": "idle-rpg:character-upgraded@1",
107
- "when": "a hero's level went up (after a successful client.character.upgradeCharacterLevel)",
108
- "payload": {
109
- "characterId": "string",
110
- "level": "number"
111
- }
112
- }
113
- ]
114
- },
115
- "dependencies": {
116
- "@idosgames/core": "0.19.0",
117
- "@idosgames/module-sdk": "0.5.0",
118
- "@idosgames/react": "0.3.0",
119
- "@idosgames/wallet": "0.5.1",
120
- "@tanstack/react-query": "5.101.2",
121
- "phaser": "4.2.1",
122
- "react": "19.2.7",
123
- "viem": "2.55.2",
124
- "wagmi": "3.7.2"
125
- },
126
- "fileCount": 19,
127
- "contentHash": "143c4595784974ca4d58d5032e77b26e93d1d96c2455974c796c7d5c1d710ba6"
128
- },
129
- {
130
- "id": "voxelcraft",
131
- "name": "VoxelCraft",
132
- "type": "template",
133
- "engine": "three",
134
- "genre": "sandbox",
135
- "summary": "Minecraft-like voxel survival game: mine, craft, build, farm and fight from the first night to the dragon — with worlds generated from a picture + description (with or without AI).",
136
- "description": "A first-person voxel game rendered in Three.js that follows Minecraft's mechanics 1:1 under its own names (every player-facing name lives in one table, so a commercial game can re-skin it; Minecraft names are accepted as aliases). Survival and creative modes: ores and tool tiers, crafting, smelting, armor, hunger, air and drowning, XP, enchanting, anvils, smithing, potions and beacons; farming, animals, taming and riding, fishing, boats and minecarts; villages with trading villagers, raids, and dozens of hostile and neutral mobs. Three dimensions — the overworld (biomes from deserts and jungles to the deep dark, caves, ocean temples, mansions, trial chambers, archaeology), the Inferno (Nether-like: fortresses, its own mobs and biomes) and the Beyond (End-like: citadel portal, the dragon boss, outer islands and cities, wings). Redstone (wire, torches, repeaters, comparators, pistons, observers, hoppers, dispensers, rails), weather, day/night, block light, fluids, achievements, generated music, a chat console with commands, and touch controls. The 'Create world' screen turns a reference picture and a text description into a world — locally in the browser (the picture read as a top-down map or as a mood, the text by keywords) or with InApp AI (client.ai, title feature \"voxel-world\") — via a compact WorldSpec recipe. Worlds autosave to 'My worlds'. The agent sees and drives the game through its debug surface (state, lookingAt, console commands). Covers any 'Minecraft clone', survival / crafting / mining game, block-building sandbox or 'generate a world from a picture' request; by far the largest feature module. Co-op multiplayer for up to 8 players, like Minecraft's 'Open to LAN': a player opens their world to the network (by invite code or in the public list, guest game mode, 'commands for everyone' switch), others join from the 'Network game' screen; the host grants operator, kicks and bans. Peer-to-peer over WebRTC (the SDK transport @idosgames/core/realtime, rooms and signaling on the engine's Multiplayer module; TURN relay from the engine when configured): each live dimension is simulated by one player and players may be in different dimensions at once; everyone's own inventory and progress stay theirs; when the host leaves or its tab dies the world moves to another player without stopping. Needs the title's Multiplayer section enabled (Host topology). Not included yet: AI-driven villagers and a dedicated server.",
137
- "provides": [
138
- "first-person voxel world: mine, place and break blocks",
139
- "survival and creative modes (health, hunger, air, XP, death and respawn)",
140
- "crafting, smelting, tool and armor tiers",
141
- "enchanting, anvil, smithing, potions, beacon",
142
- "farming, animals, taming and riding, fishing, boats",
143
- "villages, trading villagers, raids",
144
- "dozens of hostile and neutral mobs, bosses (dragon, ash lord)",
145
- "three dimensions: overworld, Inferno (Nether-like), Beyond (End-like)",
146
- "biomes, caves and structures (temples, mansions, fortresses, trial chambers, ruins)",
147
- "redstone: wire, repeaters, comparators, pistons, observers, hoppers, rails and minecarts",
148
- "weather, day/night cycle, block light and fluid simulation",
149
- "achievements and procedurally generated music",
150
- "chat console with commands (/give, /tp, /locate, /summon, …)",
151
- "touch controls for mobile",
152
- "world generation from a picture + description (WorldSpec recipe)",
153
- "AI world generation via client.ai (feature \"voxel-world\")",
154
- "AI builds objects from pictures out of coloured blocks (a plane, a car… — models of shapes)",
155
- "AI recreates landscapes from pictures (terrain sketch, rivers, biomes)",
156
- "co-op multiplayer up to 8 players (P2P over WebRTC, @idosgames/core/realtime)",
157
- "open the world to the network: invite code or public list, guest game mode, operators, kick and ban",
158
- "players in different dimensions at once; host migration without stopping the world",
159
- "autosave and 'My worlds' (IndexedDB)",
160
- "own player-facing names for a re-skinnable commercial game (Minecraft names as aliases)",
161
- "3D block rendering (Three.js)"
162
- ],
163
- "tags": [
164
- "voxel",
165
- "sandbox",
166
- "survival",
167
- "crafting",
168
- "minecraft",
169
- "3d",
170
- "first-person",
171
- "open-world",
172
- "redstone",
173
- "mobile",
174
- "three",
175
- "ai",
176
- "world-generation",
177
- "multiplayer",
178
- "co-op"
179
- ],
180
- "media": {
181
- "image": "https://cloud.idosgames.com/drive/modules/voxelcraft/cover.png",
182
- "video": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo.mp4"
183
- },
184
- "demoUrl": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo/",
185
- "author": {
186
- "name": "iDos Games",
187
- "url": "https://idosgames.com"
188
- },
189
- "version": "0.4.0",
190
- "dependencies": {
191
- "@idosgames/core": "0.19.0",
192
- "@idosgames/module-sdk": "0.5.0",
193
- "three": "0.185.1"
194
- },
195
- "fileCount": 537,
196
- "contentHash": "1648a7174756f00cb7952db0fd5fb4f556793acc190238e18c393cc4d607de0a"
197
- },
198
- {
199
- "id": "showcase",
200
- "name": "Showcase",
201
- "type": "template",
202
- "engine": "dom",
203
- "genre": "casual",
204
- "sharedUi": {
205
- "drawsOwn": [
206
- "account",
207
- "menu"
208
- ]
209
- },
210
- "summary": "The lobby a new title starts from: balances, the profile and the game's screens (shop, heroes, leaders, rewards, …) as tabs and 'More', plus a tiny mini-game.",
211
- "description": "The minimal complete app a new title starts from when no other template fits the idea. It is a LOBBY: every screen is another catalog module registered as a feature of the game (ctx.features) — store-ui, inventory-ui, leaderboard-ui, rewards-ui and the other *-ui modules — and the lobby lays out whatever is installed: tabs at the bottom with 'More' on a phone, a centred tab pill on a tablet, a side rail on a desktop, badges on every tab. Its own content is only a 15-second tap mini-game that submits a score to the title's leaderboard and reports rounds to quests. The header shows the balances (reward icons fly into them) and the player's profile. Remove a screen module from src/modules.ts and its tab disappears; add one and it appears. Ships title-seed.json with the currencies and items the screens share; each screen module brings its own section.",
212
- "provides": [
213
- "lobby for a game made of screen modules",
214
- "bottom tabs with More on phones, tab pill on tablets, side rail on desktops",
215
- "badges on tabs",
216
- "balance counters that reward icons fly into",
217
- "player profile button",
218
- "tap mini-game that submits a leaderboard score",
219
- "demo currencies and items"
220
- ],
221
- "tags": [
222
- "starter",
223
- "showcase",
224
- "lobby",
225
- "menu",
226
- "tabs",
227
- "mini-game",
228
- "casual"
229
- ],
230
- "author": {
231
- "name": "iDos Games",
232
- "url": "https://idosgames.com"
233
- },
234
- "version": "0.1.0",
235
- "dependencies": {
236
- "@idosgames/core": "0.19.0",
237
- "@idosgames/module-sdk": "0.5.0",
238
- "@idosgames/react": "0.3.0",
239
- "react": "19.2.7"
240
- },
241
- "fileCount": 10,
242
- "contentHash": "72b9c79dc24f916da62550f6e69e37fc5d72e92a00db853f6f0ec6332b97372d"
243
- },
244
- {
245
- "id": "game-hud",
246
- "name": "Game HUD",
247
- "type": "feature",
248
- "engine": "dom",
249
- "sharedUi": {
250
- "provides": [
251
- "currency-bar",
252
- "wallet",
253
- "status",
254
- "account",
255
- "menu"
256
- ]
257
- },
258
- "summary": "Shared game HUD: one currency bar, wallet button, status line and account chip across every mode.",
259
- "description": "The shared chrome for a game made of several modules. It takes every shared-UI role (currency-bar, wallet, status, account), so templates mixed into the same game hide their own balances, wallet and status line automatically — without editing them. Stays on screen in every mode (a HUD panel with activeOnly: false), clears the status on each mode switch, and is ordinary editable React: restyle or replace it like any other module. Installed automatically when a project starts from two or more templates.",
260
- "provides": [
261
- "one shared currency balance bar for every mode",
262
- "one crypto wallet button (deposit / withdraw) for the whole game",
263
- "shared status line / toast messages across modes",
264
- "player ID with copy and a log-out button",
265
- "consistent HUD when mixing several game templates"
266
- ],
267
- "tags": [
268
- "hud",
269
- "ui",
270
- "shared",
271
- "wallet",
272
- "currency",
273
- "status",
274
- "chrome"
275
- ],
276
- "author": {
277
- "name": "iDos Games",
278
- "url": "https://idosgames.com"
279
- },
280
- "version": "0.1.0",
281
- "events": {
282
- "listens": [
283
- {
284
- "topic": "host:mode-changed@1",
285
- "why": "clears the previous mode's status message when the player switches modes"
286
- }
287
- ]
288
- },
289
- "dependencies": {
290
- "@idosgames/core": "0.19.0",
291
- "@idosgames/module-sdk": "0.5.0",
292
- "@idosgames/react": "0.3.0",
293
- "@idosgames/wallet": "0.5.1",
294
- "@tanstack/react-query": "5.101.2",
295
- "react": "19.2.7",
296
- "viem": "2.55.2",
297
- "wagmi": "3.7.2"
298
- },
299
- "fileCount": 10,
300
- "contentHash": "08e902f30f360b5638c6432dd938b2b1cc120cc2bc9fbab9dde4ca926b914a5c"
301
- },
302
- {
303
- "id": "workshop",
304
- "name": "Workshop",
305
- "type": "feature",
306
- "engine": "dom",
307
- "summary": "Workshop: players and the publisher share content (maps, levels, skins, models) — free, for in-game resources, or unlocked by holding items.",
308
- "description": "A ready catalog of user-generated content for ANY game. Players publish what they made (a world, a level, a skin, any file the title allows), set how others get it — free, a price in in-game resources (several options at once, the author receives it minus commission), or 'hold N of this item / currency to unlock' (nothing is charged; while held or once) — and others browse, filter, acquire, open, like, favorite, follow authors and report. The publisher configures content types, formats, limits, commission and moderation in the Workshop section of the title config, curates featured collections and publishes official content from the dashboard. A game plugs its own content in by registering a handler with ctx.content.registerType({ type, label, listLocal, capture, open, modeId }) — the Workshop never imports the game. VoxelCraft registers 'voxelcraft.world'.",
309
- "provides": [
310
- "player-made content catalog (maps, levels, skins, models, any file type the title allows)",
311
- "publish a map or level made in the game",
312
- "sell content for in-game resources with author royalties minus commission",
313
- "free content sharing",
314
- "unlock content by holding an item or currency without spending it",
315
- "likes, favorites and following content creators",
316
- "report content and auto-hide after reports",
317
- "publisher featured collections and official content",
318
- "download and open shared content in the game"
319
- ],
320
- "tags": [
321
- "workshop",
322
- "ugc",
323
- "user-generated-content",
324
- "maps",
325
- "levels",
326
- "mods",
327
- "sharing",
328
- "marketplace",
329
- "creators",
330
- "social"
331
- ],
332
- "author": {
333
- "name": "iDos Games",
334
- "url": "https://idosgames.com"
335
- },
336
- "version": "0.1.0",
337
- "dependencies": {
338
- "@idosgames/core": "0.19.0",
339
- "@idosgames/module-sdk": "0.5.0",
340
- "@idosgames/react": "0.3.0",
341
- "react": "19.2.7"
342
- },
343
- "fileCount": 4,
344
- "contentHash": "01b9b8439ce44320e7ea8a1aa0a679b3773c291c784a5999c9eab7114c80339d"
345
- },
346
- {
347
- "id": "store-ui",
16
+ "id": "store",
348
17
  "name": "Shop",
349
18
  "type": "feature",
350
19
  "engine": "dom",
20
+ "inBase": true,
351
21
  "summary": "Shop screen for any game: the title's storefront with stores as tabs, offer cards, purchase confirmation and the reward animation.",
352
- "description": "A ready shop for ANY game, built on the @idosgames/react/ui kit. It draws the storefront the server resolves for the player (client.store.getStorefront — rotation, limits, timers and badges are the server's), several stores as tabs, the first section of a store as a carousel and the rest as grids, a free daily gift that shines, sold-out and not-yet-available states with countdowns, a confirmation popup (a bottom sheet on phones) and the 'You got' animation where rewards fly to the balance counters. Registers itself as the 'store' feature of the game (ctx.features): the showcase lobby shows it as a tab, the shared HUD's ☰ lists it, and any module can open it with ctx.features.open('store'). Its badge counts free offers waiting. Ships title-seed.json: a demo store with a daily gift, items and currency packs.",
22
+ "description": "A ready shop for ANY game, built on the @idosgames/react/ui kit. It draws the storefront the server resolves for the player (client.store.getStorefront — rotation, limits, timers and badges are the server's), several stores as tabs, the first section of a store as a carousel and the rest as grids, a free daily gift that shines, sold-out and not-yet-available states with countdowns, a confirmation popup (a bottom sheet on phones) and the 'You got' animation where rewards fly to the balance counters. Registers itself as the 'store' feature of the game (ctx.features): the lobby of the base shows it as a tab, and any module can open it with ctx.features.open('store'). Its badge counts free offers waiting. Ships title-seed.json: a demo store with a daily gift, items and currency packs.",
353
23
  "provides": [
354
24
  "shop screen from the title storefront",
355
25
  "several stores as tabs",
@@ -377,18 +47,19 @@
377
47
  "version": "0.1.0",
378
48
  "dependencies": {
379
49
  "@idosgames/core": "0.19.0",
380
- "@idosgames/module-sdk": "0.5.0",
50
+ "@idosgames/module-sdk": "0.6.0",
381
51
  "@idosgames/react": "0.3.0",
382
52
  "react": "19.2.7"
383
53
  },
384
- "fileCount": 7,
385
- "contentHash": "f9ef650d747113ee2ad1347cfe8b2d7e8b7d3b2ccfcaf0c1dedbfcdb4d509359"
54
+ "fileCount": 6,
55
+ "contentHash": "355f6a164da0c42e75ba35eef6f480417e676dbfc5985cef8cccc6127beebde5"
386
56
  },
387
57
  {
388
- "id": "character-ui",
58
+ "id": "character",
389
59
  "name": "Heroes",
390
60
  "type": "feature",
391
61
  "engine": "dom",
62
+ "inBase": true,
392
63
  "summary": "Heroes screen for any game: roster, ranks and stats with their costs, equipment slots with 'Equip best', item levels and skins.",
393
64
  "description": "A ready heroes screen (the Hero button of the Unity SDK) for ANY game, built on the @idosgames/react/ui kit and client.character. The screen is the selected hero's equipment hub: portrait, class and rarity, rank and server-computed Power, 'Rank up' with its price, gear slots (locked ones show the rank they open at), 'Equip best' when better gear fits, and the gear the player owns by class. Everything detailed is a popup: the hero list (select, unlock for currency), the stats (level/cap bars, upgrade prices, requirements, and 'where this number comes from' — base, stat levels, rank, gear flat and percent bonuses), a slot's fitting gear, a piece of gear (equip / take off / level up) and skins (wear, buy). Prices and caps follow the title's curves (rank ladder, stat cost curve, StatMaxLevelCurve, item Upgrade); the server re-checks everything. Registers the 'character' feature; the inventory hands equipment to it with ctx.features.open('character', { itemInstanceID }). Its badge counts heroes to unlock or rank up and better gear. Ships title-seed.json: three heroes (Knight free, Archer and Mage for gems) with stats, ranks and slots.",
394
65
  "provides": [
@@ -421,20 +92,21 @@
421
92
  "version": "0.1.0",
422
93
  "dependencies": {
423
94
  "@idosgames/core": "0.19.0",
424
- "@idosgames/module-sdk": "0.5.0",
95
+ "@idosgames/module-sdk": "0.6.0",
425
96
  "@idosgames/react": "0.3.0",
426
97
  "react": "19.2.7"
427
98
  },
428
- "fileCount": 7,
429
- "contentHash": "25261212eb2e582d0b2cd403ac1fe6406f2b76a5681d7cda1b99708ae136e25f"
99
+ "fileCount": 6,
100
+ "contentHash": "94540f094f5e709b7135a66a75a093d7a12c8912e497bea918a86079535a24a3"
430
101
  },
431
102
  {
432
- "id": "inventory-ui",
103
+ "id": "inventory",
433
104
  "name": "Inventory",
434
105
  "type": "feature",
435
106
  "engine": "dom",
107
+ "inBase": true,
436
108
  "summary": "Inventory screen for any game: owned items by rarity with category tabs, item cards, chests opened with an animation.",
437
- "description": "A ready inventory for ANY game, built on the @idosgames/react/ui kit. It shows what the player owns from the SDK's cached inventory (no request of its own): category tabs (equipment, consumables, other), rarity frames, counts and levels, and an item card popup with the description. Lootboxes: a Chests tab lists the title's lootboxes with every way to open them, and an item that is a chest's key gets an 'Open' button — the box shakes while the server rolls it, bursts, and the rewards fly out. Equipment hands off to the heroes screen (ctx.features.open('character', { itemInstanceID })) when character-ui is installed. Registers the 'inventory' feature; its badge counts chests the player can open with the items they hold.",
109
+ "description": "A ready inventory for ANY game, built on the @idosgames/react/ui kit. It shows what the player owns from the SDK's cached inventory (no request of its own): category tabs (equipment, consumables, other), rarity frames, counts and levels, and an item card popup with the description. Lootboxes: a Chests tab lists the title's lootboxes with every way to open them, and an item that is a chest's key gets an 'Open' button — the box shakes while the server rolls it, bursts, and the rewards fly out. Equipment hands off to the heroes screen (ctx.features.open('character', { itemInstanceID })) when character is installed. Registers the 'inventory' feature; its badge counts chests the player can open with the items they hold.",
438
110
  "provides": [
439
111
  "inventory screen with rarity and categories",
440
112
  "item details popup",
@@ -460,18 +132,19 @@
460
132
  "version": "0.1.0",
461
133
  "dependencies": {
462
134
  "@idosgames/core": "0.19.0",
463
- "@idosgames/module-sdk": "0.5.0",
135
+ "@idosgames/module-sdk": "0.6.0",
464
136
  "@idosgames/react": "0.3.0",
465
137
  "react": "19.2.7"
466
138
  },
467
- "fileCount": 7,
468
- "contentHash": "da8d010169e57e032afbdd0805d206b7f0cd39e0662f00a18b4bb2f7d7da7c63"
139
+ "fileCount": 6,
140
+ "contentHash": "4fee98ecaddf2c0e9a997e974160da2ad2add6b6d48c046b602c14e48bc81822"
469
141
  },
470
142
  {
471
- "id": "leaderboard-ui",
143
+ "id": "leaderboard",
472
144
  "name": "Leaderboards",
473
145
  "type": "feature",
474
146
  "engine": "dom",
147
+ "inBase": true,
475
148
  "summary": "Leaderboards screen for any game: boards as tabs, top players and my rank, rank rewards, score milestones and the reward of the last round.",
476
149
  "description": "A ready leaderboards screen for ANY game, built on the @idosgames/react/ui kit. The title's enabled leaderboards are tabs; each shows a card with the player's score, rank and the countdown to the end of the round, and the top list with the player highlighted and medals for the top three. Rank rewards and score milestones open as popups (claim a milestone there). When a round ends, the reward for the place the player took pops up by itself with a Claim button (like LeaderboardCycleRewardPopup in the Unity SDK). A game that has something to play for the score registers a 'play' feature and a Play button appears on the card. Registers the 'leaderboard' feature; its badge counts boards with a reward waiting. Ships title-seed.json: a weekly best-score leaderboard with rank rewards.",
477
150
  "provides": [
@@ -501,18 +174,19 @@
501
174
  "version": "0.1.0",
502
175
  "dependencies": {
503
176
  "@idosgames/core": "0.19.0",
504
- "@idosgames/module-sdk": "0.5.0",
177
+ "@idosgames/module-sdk": "0.6.0",
505
178
  "@idosgames/react": "0.3.0",
506
179
  "react": "19.2.7"
507
180
  },
508
- "fileCount": 7,
509
- "contentHash": "8a49ee014e841fdc2e342f03b66fbd4172e2e09a07618cd72214b7ff8f0ecb57"
181
+ "fileCount": 6,
182
+ "contentHash": "779700ab18f4bf06c4b7ab37ff23bfb609f956bc3fe8e6fd2bf642c1f2c4999a"
510
183
  },
511
184
  {
512
- "id": "rewards-ui",
185
+ "id": "rewards",
513
186
  "name": "Rewards",
514
187
  "type": "feature",
515
188
  "engine": "dom",
189
+ "inBase": true,
516
190
  "summary": "Rewards screen for any game: a daily login calendar that greets the player, quests by cycle with details and the quest points track.",
517
191
  "description": "A ready rewards screen for ANY game, built on the @idosgames/react/ui kit. A daily login calendar (collected / today / locked cards, the last day a big milestone) that pops up by itself once per session while a reward is waiting (like DailyBonusAutoOpener in the Unity project), and the title's quests: cycles as tabs (daily, weekly, achievements), progress bars, a quest details popup with every goal, 'Claim all' for finished quests, and the quest points track with chests to claim along it. Registers the 'rewards' feature; its badge counts the daily bonus and finished quests. Ships title-seed.json: a 7-day calendar and four daily quests.",
518
192
  "provides": [
@@ -542,18 +216,19 @@
542
216
  "version": "0.1.0",
543
217
  "dependencies": {
544
218
  "@idosgames/core": "0.19.0",
545
- "@idosgames/module-sdk": "0.5.0",
219
+ "@idosgames/module-sdk": "0.6.0",
546
220
  "@idosgames/react": "0.3.0",
547
221
  "react": "19.2.7"
548
222
  },
549
- "fileCount": 7,
550
- "contentHash": "d1668715eb73258f9b6e9f3b24159cf369fac3954d1ccf74bab6c3c5fe674944"
223
+ "fileCount": 6,
224
+ "contentHash": "f7f8672832798aa56674aa1a5705fac1a036a8dd7cd6febfd3a930bd953b5b41"
551
225
  },
552
226
  {
553
- "id": "craft-ui",
227
+ "id": "craft",
554
228
  "name": "Craft",
555
229
  "type": "feature",
556
230
  "engine": "dom",
231
+ "inBase": true,
557
232
  "summary": "Craft screen for any game: trade-up recipes by rarity or collection, a contract of owned items, auto-fill, price options and the result popup.",
558
233
  "description": "A ready craft screen (Unity Alikhan/Craft) for ANY game, built on the @idosgames/react/ui kit and client.craft. The screen lists the title's recipes as cards, lowest rarity first: what goes in (N items of a rarity or a collection) and what can come out. A recipe opens as a popup — the contract: the fitting items the player owns (worn equipment does not count), tap to add, 'Auto' fills from the most plentiful, the price options, and 'Craft'. The server rolls the result (only items with a roll Weight > 0 are promised) and the reward popup shows it flying into the inventory. 'Not enough coins' offers to open the shop (ctx.features.open('store')). Registers the 'craft' feature; its badge counts recipes the player can run now. Ships title-seed.json: 3 Common → Rare for coins and 3 Rare → Legendary for gems.",
559
234
  "provides": [
@@ -582,18 +257,19 @@
582
257
  "version": "0.1.0",
583
258
  "dependencies": {
584
259
  "@idosgames/core": "0.19.0",
585
- "@idosgames/module-sdk": "0.5.0",
260
+ "@idosgames/module-sdk": "0.6.0",
586
261
  "@idosgames/react": "0.3.0",
587
262
  "react": "19.2.7"
588
263
  },
589
- "fileCount": 7,
590
- "contentHash": "258ad0cd09a83c498f719c1da59e77654eed3bd1ff42c23d49088c457bedc5de"
264
+ "fileCount": 6,
265
+ "contentHash": "771cc072c7bf80a5f8c6822836ed3c4198d4572aa5bc7bea663add134d5e79ee"
591
266
  },
592
267
  {
593
- "id": "marketplace-ui",
268
+ "id": "marketplace",
594
269
  "name": "Marketplace",
595
270
  "type": "feature",
596
271
  "engine": "dom",
272
+ "inBase": true,
597
273
  "summary": "Marketplace screen for any game: player listings and auctions, selling, bids, direct trades, claims and history.",
598
274
  "description": "A ready player marketplace (Unity Alikhan/Marketplace) for ANY game, built on the @idosgames/react/ui kit and client.marketplace. Tabs: the market (items grouped with their cheapest price), my lots, my bids, direct trades, things to claim and history. Everything detailed is a popup: an item's offers (cheapest listing first, then auctions ending soonest), one offer (buy, bid with the engine's minimum next bid, cancel your own), selling (pick an item — only tradable, never a worn one — then listing or auction, amount, price in a currency tradable between players, duration and the commission), and incoming trades (accept / decline). The server holds the escrow and settles every trade. Registers the 'marketplace' feature; its badge counts things to claim and trades waiting. Ships title-seed.json: listings and auctions for currencies with a 5% commission.",
599
275
  "provides": [
@@ -623,18 +299,19 @@
623
299
  "version": "0.1.0",
624
300
  "dependencies": {
625
301
  "@idosgames/core": "0.19.0",
626
- "@idosgames/module-sdk": "0.5.0",
302
+ "@idosgames/module-sdk": "0.6.0",
627
303
  "@idosgames/react": "0.3.0",
628
304
  "react": "19.2.7"
629
305
  },
630
- "fileCount": 7,
631
- "contentHash": "991caf4844f3f3e56e846769c94999c10056178016c2c3c74ca0dd6109be6e7d"
306
+ "fileCount": 6,
307
+ "contentHash": "f9cd6340a024f37d6be7101f08dbf9aafbf1a8a52aa05f7ff1f2f43db3bc071d"
632
308
  },
633
309
  {
634
- "id": "deal-offer-ui",
310
+ "id": "deals",
635
311
  "name": "Offers",
636
312
  "type": "feature",
637
313
  "engine": "dom",
314
+ "inBase": true,
638
315
  "summary": "Special offers for any game: a new deal pops up by itself; single offers, step chains and pick-one gifts with a milestone bar.",
639
316
  "description": "Special offers (Unity Alikhan/DealOffer) for ANY game, built on the @idosgames/react/ui kit and client.dealOffer. An always-on watcher pops a newly started deal up by itself once (and records the impression with recordShow); the 'Offers' screen lists every active deal with its timer and everything it can give. A deal opens as a popup shaped by its node graph: one big offer, a chain of steps (each unlocks the next, the server decides status), or cards to pick one from; free steps, currency prices, store-only steps and the milestone bar with its rewards. Registers the 'deals' feature; its badge counts free steps and milestone rewards waiting. Ships title-seed.json: a three-step starter pack with a bonus and a free pick-one welcome gift.",
640
317
  "provides": [
@@ -662,20 +339,21 @@
662
339
  "version": "0.1.0",
663
340
  "dependencies": {
664
341
  "@idosgames/core": "0.19.0",
665
- "@idosgames/module-sdk": "0.5.0",
342
+ "@idosgames/module-sdk": "0.6.0",
666
343
  "@idosgames/react": "0.3.0",
667
344
  "react": "19.2.7"
668
345
  },
669
- "fileCount": 7,
670
- "contentHash": "08d3eb3ffb85c9e17738e943e5d82329189e9783c950237dd074874bcc4d6ed3"
346
+ "fileCount": 6,
347
+ "contentHash": "cc3d5ab811dc1299d64a4bcd4361d097ce776fcfd20949ddac015271111beed0"
671
348
  },
672
349
  {
673
- "id": "events-ui",
350
+ "id": "events",
674
351
  "name": "Events",
675
352
  "type": "feature",
676
353
  "engine": "dom",
354
+ "inBase": true,
677
355
  "summary": "Limited-time events for any game: event tabs with a timer, a token bar, a milestone track, claim all and a VIP second prize.",
678
- "description": "A ready events screen (Unity Core/Window LimitedTimeEvent) for ANY game, built on the @idosgames/react/ui kit and client.timedEvent. Every active event the server resolves (scheduled, cyclic or chained) is a tab: its name and timer, the token bar toward the next prize and the milestone track in threshold order. A milestone pays its reward and, when the reward has premium tiers, a VIP second prize; a pass bought later tops up the milestones already claimed. 'Claim all' takes everything waiting in one call. How the tokens are earned (the event's token sources with their daily caps) and the VIP pass (its benefits and prices in currencies) are popups. Registers the 'events' feature; its badge counts milestones and VIP top-ups waiting. Tokens come from the game: a round of play is a CustomAction the game grants with client.timedEvent.grantTokens (the showcase mini-game does it for every active event that lists the action). Ships title-seed.json: a weekly 'Star festival' with five milestones and a VIP prize on each.",
356
+ "description": "A ready events screen (Unity Core/Window LimitedTimeEvent) for ANY game, built on the @idosgames/react/ui kit and client.timedEvent. Every active event the server resolves (scheduled, cyclic or chained) is a tab: its name and timer, the token bar toward the next prize and the milestone track in threshold order. A milestone pays its reward and, when the reward has premium tiers, a VIP second prize; a pass bought later tops up the milestones already claimed. 'Claim all' takes everything waiting in one call. How the tokens are earned (the event's token sources with their daily caps) and the VIP pass (its benefits and prices in currencies) are popups. Registers the 'events' feature; its badge counts milestones and VIP top-ups waiting. Tokens come from the game: a round of play is a CustomAction the game grants with client.timedEvent.grantTokens (the mini-game module does it for every active event that lists the action). Ships title-seed.json: a weekly 'Star festival' with five milestones and a VIP prize on each.",
679
357
  "provides": [
680
358
  "events screen with a tab per active event",
681
359
  "event timer and token progress bar",
@@ -704,20 +382,21 @@
704
382
  "version": "0.1.0",
705
383
  "dependencies": {
706
384
  "@idosgames/core": "0.19.0",
707
- "@idosgames/module-sdk": "0.5.0",
385
+ "@idosgames/module-sdk": "0.6.0",
708
386
  "@idosgames/react": "0.3.0",
709
387
  "react": "19.2.7"
710
388
  },
711
- "fileCount": 8,
712
- "contentHash": "516eb5f792f385475c2ccb9cb831ea93e9e3958fc6baf0e44275a5fa7fb2bec1"
389
+ "fileCount": 7,
390
+ "contentHash": "4f8a725287979ac38c7332be0b9085920b08ca774914bf7c00bce6dcaa0cc9dc"
713
391
  },
714
392
  {
715
- "id": "season-ui",
393
+ "id": "season",
716
394
  "name": "Season",
717
395
  "type": "feature",
718
396
  "engine": "dom",
397
+ "inBase": true,
719
398
  "summary": "Seasons for any game: the active season with its timer, a status bar, a tier ladder with a reward each, claim all and a VIP second prize.",
720
- "description": "A ready season screen (Unity Core/Window MilestoneRewards) for ANY game, built on the @idosgames/react/ui kit and client.season. Every season chain of the title is a tab showing its active season: name and timer, the player's tier, the status bar toward the next tier and the tier ladder. Each tier pays its reward once ('Claim all' takes every reached tier in one call); a tier with premium tiers pays a VIP second prize when the pass is active at the moment of the claim. The VIP pass (benefits, prices in currencies) is a popup. The server decides the tier — including status tokens that arrive as rewards of other systems. Registers the 'season' feature; its badge counts tier rewards waiting and it reloads when status tokens are granted. Status comes from the game: a chain open to clients takes client.season.grantStatusTokens (the showcase mini-game grants status for every round). Ships title-seed.json: two alternating 28-day seasons with five tiers and a VIP prize on each.",
399
+ "description": "A ready season screen (Unity Core/Window MilestoneRewards) for ANY game, built on the @idosgames/react/ui kit and client.season. Every season chain of the title is a tab showing its active season: name and timer, the player's tier, the status bar toward the next tier and the tier ladder. Each tier pays its reward once ('Claim all' takes every reached tier in one call); a tier with premium tiers pays a VIP second prize when the pass is active at the moment of the claim. The VIP pass (benefits, prices in currencies) is a popup. The server decides the tier — including status tokens that arrive as rewards of other systems. Registers the 'season' feature; its badge counts tier rewards waiting and it reloads when status tokens are granted. Status comes from the game: a chain open to clients takes client.season.grantStatusTokens (the mini-game module grants status for every round). Ships title-seed.json: two alternating 28-day seasons with five tiers and a VIP prize on each.",
721
400
  "provides": [
722
401
  "season screen with a tab per chain",
723
402
  "season timer and status bar",
@@ -745,20 +424,21 @@
745
424
  "version": "0.1.0",
746
425
  "dependencies": {
747
426
  "@idosgames/core": "0.19.0",
748
- "@idosgames/module-sdk": "0.5.0",
427
+ "@idosgames/module-sdk": "0.6.0",
749
428
  "@idosgames/react": "0.3.0",
750
429
  "react": "19.2.7"
751
430
  },
752
- "fileCount": 8,
753
- "contentHash": "81f29463cedaef764861e232b709c16c5688536ccf7fffab23407496311313a8"
431
+ "fileCount": 7,
432
+ "contentHash": "2c1033ffa9a9f428fffce4a01e3a650069fc7d022d90c2b0d6e7426c2c73d245"
754
433
  },
755
434
  {
756
- "id": "friends-ui",
435
+ "id": "friends",
757
436
  "name": "Friends",
758
437
  "type": "feature",
759
438
  "engine": "dom",
439
+ "inBase": true,
760
440
  "summary": "Friends for any game: the friends list, requests, suggestions and the notification inbox, with a player card and add-by-ID in popups.",
761
- "description": "A ready friends screen (Unity Runtime/UI/Friends) for ANY game, built on the @idosgames/react/ui kit and client.social. Tabs: friends, requests (incoming with accept / decline, and the ones you sent), suggestions (players active in this game lately) and news — the notification inbox (attacks, raids, new friends, sales, follows, likes, comments), opened as seen. The player's own ID sits on top with a copy button. Everything detailed is a popup: adding a friend by ID, the player card (level, power; message — opens the chat feature when chat-ui is installed; remove friend; block) and the confirmations. When the title takes friends from idosgames.com only, requests, suggestions and 'Add' disappear and platform friends cannot be removed in the game. Registers the 'friends' feature; its badge counts requests waiting and unread news. No title settings needed.",
441
+ "description": "A ready friends screen (Unity Runtime/UI/Friends) for ANY game, built on the @idosgames/react/ui kit and client.social. Tabs: friends, requests (incoming with accept / decline, and the ones you sent), suggestions (players active in this game lately) and news — the notification inbox (attacks, raids, new friends, sales, follows, likes, comments), opened as seen. The player's own ID sits on top with a copy button. Everything detailed is a popup: adding a friend by ID, the player card (level, power; message — opens the chat feature when chat is installed; remove friend; block) and the confirmations. When the title takes friends from idosgames.com only, requests, suggestions and 'Add' disappear and platform friends cannot be removed in the game. Registers the 'friends' feature; its badge counts requests waiting and unread news. No title settings needed.",
762
442
  "provides": [
763
443
  "friends list",
764
444
  "incoming and sent friend requests",
@@ -784,18 +464,19 @@
784
464
  "version": "0.1.0",
785
465
  "dependencies": {
786
466
  "@idosgames/core": "0.19.0",
787
- "@idosgames/module-sdk": "0.5.0",
467
+ "@idosgames/module-sdk": "0.6.0",
788
468
  "@idosgames/react": "0.3.0",
789
469
  "react": "19.2.7"
790
470
  },
791
- "fileCount": 7,
792
- "contentHash": "eaaf0ec5662490736c610ad463449c4696a00ffa2d980aae568188b74c6c600c"
471
+ "fileCount": 6,
472
+ "contentHash": "a7ff6c415397f9e9f406bffa2b8f26da60ab46a1ebdb0d7b0155c3fe843dc862"
793
473
  },
794
474
  {
795
- "id": "chat-ui",
475
+ "id": "chat",
796
476
  "name": "Chat",
797
477
  "type": "feature",
798
478
  "engine": "dom",
479
+ "inBase": true,
799
480
  "summary": "Chat for any game: channels as tabs, private chats, a feed with earlier messages, slow mode, and report / ignore / write privately in a popup.",
800
481
  "description": "A ready player chat (Unity V2/Runtime/UI/Chat) for ANY game, built on the @idosgames/react/ui kit and client.chat. The title's channels are tabs (names are localization keys) plus 'Private' — 1-on-1 chats (with friends when the title says so). The feed loads its history, pages back to earlier messages, shows the server's copy of what was sent (moderation may mask a word) and counts down the slow mode; a channel the player may not write to shows the server's reason. ONE poll covers every room and runs only while the screen is open, at the interval the server sets; rooms are marked read when the player leaves them. Popups: a message's actions (write privately, report with a reason, ignore the player) and the channel list to join or leave opt-in channels. Registers the 'chat' feature; features.open('chat', { userID }) opens a private chat (the friends card uses it). Its badge is the unread count, read once per session — a closed chat costs nothing. Ships title-seed.json: a world channel, an opt-in trade channel, private chats between friends.",
801
482
  "provides": [
@@ -824,18 +505,19 @@
824
505
  "version": "0.1.0",
825
506
  "dependencies": {
826
507
  "@idosgames/core": "0.19.0",
827
- "@idosgames/module-sdk": "0.5.0",
508
+ "@idosgames/module-sdk": "0.6.0",
828
509
  "@idosgames/react": "0.3.0",
829
510
  "react": "19.2.7"
830
511
  },
831
- "fileCount": 7,
832
- "contentHash": "3e02bb18c0e156cf14736377a4c0bde15149eab92138d7f0252a906377c53307"
512
+ "fileCount": 6,
513
+ "contentHash": "c8cb8ebf55d121863fddf885d9da0c07a25ad0b764173862787541c747d1b240"
833
514
  },
834
515
  {
835
- "id": "referral-ui",
516
+ "id": "invite",
836
517
  "name": "Invite",
837
518
  "type": "feature",
838
519
  "engine": "dom",
520
+ "inBase": true,
839
521
  "summary": "Invite friends for any game: your code and link to share, friends who came by it, rewards for them, and entering a friend's code in a popup.",
840
522
  "description": "A ready invite-a-friend screen (Unity V2/Runtime/UI/Referral) for ANY game, built on the @idosgames/react/ui kit and client.referral. The player's own short code (minted by the server when the screen opens) with 'Copy' and 'Share link' (the system share sheet, else the clipboard), how many friends came by it and the reward ladder for them (claim one or all). Entering a friend's code is a popup: it shows the newcomer's gift, reads the code the way the server does (8 letters, separators and case ignored) and pays the gift once. A player bound at login by an invite link sees 'You joined by a friend's code'. Registers the 'invite' feature; its badge counts invite rewards ready. Ships title-seed.json: a gift for the newcomer and rewards for 1, 3 and 5 friends.",
841
523
  "provides": [
@@ -863,20 +545,21 @@
863
545
  "version": "0.1.0",
864
546
  "dependencies": {
865
547
  "@idosgames/core": "0.19.0",
866
- "@idosgames/module-sdk": "0.5.0",
548
+ "@idosgames/module-sdk": "0.6.0",
867
549
  "@idosgames/react": "0.3.0",
868
550
  "react": "19.2.7"
869
551
  },
870
- "fileCount": 7,
871
- "contentHash": "f78e3211a36e341d0e6a338b21b82d3b0084b975a4157eaee80ebea2e814e396"
552
+ "fileCount": 6,
553
+ "contentHash": "d161151b1e04e282113f473531db599440adbb713d52badc0d09ce6474c88a57"
872
554
  },
873
555
  {
874
- "id": "pvp-ui",
556
+ "id": "pvp",
875
557
  "name": "Arena",
876
558
  "type": "feature",
877
559
  "engine": "dom",
560
+ "inBase": true,
878
561
  "summary": "PvP duels for any game: open duels to join, your duels, creating a duel for coins, a zone strategy and the fight replayed round by round.",
879
- "description": "A ready PvP arena (Unity Alikhan/PVP/Lobby) for ANY game, built on the @idosgames/react/ui kit, client.match and client.character. Tabs: open duels (join with one of your heroes) and your duels (waiting — cancel returns the entry; finished — won / lost / draw). Popups: a new duel (rule, hero by power, entry within the rule's bounds and what the winner takes after the burn), the battle strategy (attack and defence zone — head, body, legs — per round, saved as the default) and the result, replayed round by round (whose blow, where, hit / critical / block / dodge, damage, HP left). The server fights the battle instantly from the heroes' stats; a draw returns the entries. Without a hero the screen offers the Heroes feature. Registers the 'pvp' feature. Ships title-seed.json: a coin duel (10–500, 10% burned) fought by the showcase heroes' Attack and Health.",
562
+ "description": "A ready PvP arena (Unity Alikhan/PVP/Lobby) for ANY game, built on the @idosgames/react/ui kit, client.match and client.character. Tabs: open duels (join with one of your heroes) and your duels (waiting — cancel returns the entry; finished — won / lost / draw). Popups: a new duel (rule, hero by power, entry within the rule's bounds and what the winner takes after the burn), the battle strategy (attack and defence zone — head, body, legs — per round, saved as the default) and the result, replayed round by round (whose blow, where, hit / critical / block / dodge, damage, HP left). The server fights the battle instantly from the heroes' stats; a draw returns the entries. Without a hero the screen offers the Heroes feature. Registers the 'pvp' feature. Ships title-seed.json: a coin duel (10–500, 10% burned) fought by the demo heroes' Attack and Health.",
880
563
  "provides": [
881
564
  "open duels to join",
882
565
  "my duels with cancel",
@@ -901,20 +584,21 @@
901
584
  "version": "0.1.0",
902
585
  "dependencies": {
903
586
  "@idosgames/core": "0.19.0",
904
- "@idosgames/module-sdk": "0.5.0",
587
+ "@idosgames/module-sdk": "0.6.0",
905
588
  "@idosgames/react": "0.3.0",
906
589
  "react": "19.2.7"
907
590
  },
908
- "fileCount": 7,
909
- "contentHash": "fd37397dfd33215ffcf0cf1322b0d7dccca1ebe171a0d06a07e866666346a3c3"
591
+ "fileCount": 6,
592
+ "contentHash": "57db9149531e3285b2a843ae6a4aa181be750a067e0e142a0c2792920d1f0a36"
910
593
  },
911
594
  {
912
- "id": "profile-ui",
595
+ "id": "profile",
913
596
  "name": "Profile",
914
597
  "type": "feature",
915
598
  "engine": "dom",
599
+ "inBase": true,
916
600
  "summary": "Profile and settings for any game: name and ID, sound, volume and motion, language, analytics consent, tutorials, log out and account deletion.",
917
- "description": "A ready profile screen (Unity Alikhan/Username, UI/HUD/Settings, Runtime/UI/Consent, Localization) for ANY game, built on the @idosgames/react/ui kit. The player's name (rename in a popup with the server's rules: 3–24 characters, trimmed) and ID with copy; settings: sound on/off, volume and 'fewer animations' — the kit's player prefs, kept on this device and applied to every screen at once — the game's language (the title's languages, when there are two or more) and consent to anonymous analytics (client.analytics). Buttons: Tutorials (when tutorial-ui is installed), Log out (confirmed) and Delete account — a popup that unlocks only after the player types the confirmation word, then deletes this game's data for the player. Registers the 'profile' feature; the showcase lobby's profile button opens it. No title settings needed.",
601
+ "description": "A ready profile screen (Unity Alikhan/Username, UI/HUD/Settings, Runtime/UI/Consent, Localization) for ANY game, built on the @idosgames/react/ui kit. The player's name (rename in a popup with the server's rules: 3–24 characters, trimmed) and ID with copy; settings: sound on/off, volume and 'fewer animations' — the kit's player prefs, kept on this device and applied to every screen at once — the game's language (the title's languages, when there are two or more) and consent to anonymous analytics (client.analytics). Buttons: Tutorials (when tutorials is installed), Log out (confirmed) and Delete account — a popup that unlocks only after the player types the confirmation word, then deletes this game's data for the player. Registers the 'profile' feature; the lobby's profile button opens it. No title settings needed.",
918
602
  "provides": [
919
603
  "player name and ID",
920
604
  "rename popup",
@@ -941,20 +625,21 @@
941
625
  "version": "0.1.0",
942
626
  "dependencies": {
943
627
  "@idosgames/core": "0.19.0",
944
- "@idosgames/module-sdk": "0.5.0",
628
+ "@idosgames/module-sdk": "0.6.0",
945
629
  "@idosgames/react": "0.3.0",
946
630
  "react": "19.2.7"
947
631
  },
948
- "fileCount": 7,
949
- "contentHash": "d5044c75012bd4f39b2156237dd036f26d68e3ec9f25b4d5e840110871ff0fc8"
632
+ "fileCount": 6,
633
+ "contentHash": "13df00ce0a01385a46bf73d7b50c6308526dbd3d5e1fb585e00b16df388d677d"
950
634
  },
951
635
  {
952
- "id": "tutorial-ui",
636
+ "id": "tutorials",
953
637
  "name": "Tutorials",
954
638
  "type": "feature",
955
639
  "engine": "dom",
640
+ "inBase": true,
956
641
  "summary": "Onboarding for any game: hint bubbles next to marked elements, step by step, skip, a completion reward and a replay list.",
957
- "description": "A ready onboarding overlay (Unity Runtime/UI/Tutorial, TutorialAnchorRegistry) for ANY game, built on the @idosgames/react/ui kit and client.tutorial. It shows the current step of the running flow as a hint bubble next to the element marked data-tutorial-anchor=\"{AnchorID}\" — any element of any module (lobby tabs are tab:{featureID}, the profile button lobby:profile, the play button play:start) — with the rest of the screen dimmed. It follows the element as the layout changes, steps aside while a popup is open, offers 'Next' only on steps the player closes (a SystemEvent step waits for the real game action), 'Skip' when the flow allows it, and the reward when the flow ends; every shown step is reported for the funnel. Flows start by themselves when the title says so. The 'Tutorials' feature lists the flows and replays the ones the title lets the player restart. Ships title-seed.json: a five-step welcome tour of the showcase lobby with a gem reward.",
642
+ "description": "A ready onboarding overlay (Unity Runtime/UI/Tutorial, TutorialAnchorRegistry) for ANY game, built on the @idosgames/react/ui kit and client.tutorial. It shows the current step of the running flow as a hint bubble next to the element marked data-tutorial-anchor=\"{AnchorID}\" — any element of any module (lobby tabs are tab:{featureID}, the profile button lobby:profile, a game's Play button play:{modeID}, the mini-game's round play:start) — with the rest of the screen dimmed. It follows the element as the layout changes, steps aside while a popup is open, offers 'Next' only on steps the player closes (a SystemEvent step waits for the real game action), 'Skip' when the flow allows it, and the reward when the flow ends; every shown step is reported for the funnel. Flows start by themselves when the title says so. The 'Tutorials' feature lists the flows and replays the ones the title lets the player restart. Ships title-seed.json: a five-step welcome tour of the lobby with a gem reward.",
958
643
  "provides": [
959
644
  "tutorial overlay with a highlighted element",
960
645
  "hint bubble with next and skip",
@@ -978,12 +663,275 @@
978
663
  "version": "0.1.0",
979
664
  "dependencies": {
980
665
  "@idosgames/core": "0.19.0",
981
- "@idosgames/module-sdk": "0.5.0",
666
+ "@idosgames/module-sdk": "0.6.0",
667
+ "@idosgames/react": "0.3.0",
668
+ "react": "19.2.7"
669
+ },
670
+ "fileCount": 6,
671
+ "contentHash": "e208b492977fc69db40d6b2105869911937437a5fd0b7aa15c90eedc0d88efff"
672
+ },
673
+ {
674
+ "id": "workshop",
675
+ "name": "Workshop",
676
+ "type": "feature",
677
+ "engine": "dom",
678
+ "inBase": true,
679
+ "summary": "Workshop: players and the publisher share content (maps, levels, skins, models) — free, for in-game resources, or unlocked by holding items.",
680
+ "description": "A ready catalog of user-generated content for ANY game. Players publish what they made (a world, a level, a skin, any file the title allows), set how others get it — free, a price in in-game resources (several options at once, the author receives it minus commission), or 'hold N of this item / currency to unlock' (nothing is charged; while held or once) — and others browse, filter, acquire, open, like, favorite, follow authors and report. The publisher configures content types, formats, limits, commission and moderation in the Workshop section of the title config, curates featured collections and publishes official content from the dashboard. A game plugs its own content in by registering a handler with ctx.content.registerType({ type, label, listLocal, capture, open, modeId }) — the Workshop never imports the game. VoxelCraft registers 'voxelcraft.world'.",
681
+ "provides": [
682
+ "player-made content catalog (maps, levels, skins, models, any file type the title allows)",
683
+ "publish a map or level made in the game",
684
+ "sell content for in-game resources with author royalties minus commission",
685
+ "free content sharing",
686
+ "unlock content by holding an item or currency without spending it",
687
+ "likes, favorites and following content creators",
688
+ "report content and auto-hide after reports",
689
+ "publisher featured collections and official content",
690
+ "download and open shared content in the game"
691
+ ],
692
+ "tags": [
693
+ "workshop",
694
+ "ugc",
695
+ "user-generated-content",
696
+ "maps",
697
+ "levels",
698
+ "mods",
699
+ "sharing",
700
+ "marketplace",
701
+ "creators",
702
+ "social"
703
+ ],
704
+ "author": {
705
+ "name": "iDos Games",
706
+ "url": "https://idosgames.com"
707
+ },
708
+ "version": "0.1.0",
709
+ "dependencies": {
710
+ "@idosgames/core": "0.19.0",
711
+ "@idosgames/module-sdk": "0.6.0",
712
+ "@idosgames/react": "0.3.0",
713
+ "react": "19.2.7"
714
+ },
715
+ "fileCount": 5,
716
+ "contentHash": "8708fd1f761188580603bd1e2cca47209c2d618a9c82a5530cca9c083bca19e6"
717
+ },
718
+ {
719
+ "id": "board-game",
720
+ "name": "Board Game",
721
+ "type": "template",
722
+ "engine": "three",
723
+ "genre": "board",
724
+ "summary": "3D tycoon board game: roll dice, move around the board, buy and upgrade city tiles.",
725
+ "description": "A turn-based property board game rendered in Three.js with a React overlay. Players roll dice, move around a looping board, and buy, sell and upgrade tiles to build a city and earn income. The board layout, tiles and interactions are data-driven, so the theme and economy are easy to re-skin.",
726
+ "provides": [
727
+ "turn-based dice movement around a looping board",
728
+ "buy / sell / upgrade board tiles",
729
+ "player-vs-player property economy",
730
+ "3D board rendering with a React HUD overlay",
731
+ "data-driven board layout and tile configuration"
732
+ ],
733
+ "tags": [
734
+ "board",
735
+ "tycoon",
736
+ "3d",
737
+ "turn-based",
738
+ "economy",
739
+ "three"
740
+ ],
741
+ "media": {
742
+ "image": "https://cloud.idosgames.com/drive/modules/board-game/cover.png",
743
+ "video": "https://cloud.idosgames.com/drive/modules/board-game/demo.mp4"
744
+ },
745
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/board-game/demo/",
746
+ "author": {
747
+ "name": "iDos Games",
748
+ "url": "https://idosgames.com"
749
+ },
750
+ "version": "0.1.0",
751
+ "events": {
752
+ "listens": [
753
+ {
754
+ "topic": "idle-rpg:character-upgraded@1",
755
+ "why": "shows an 'Idle RPG hero reached Lv N' news chip in the board HUD (optional — works without idle-rpg)"
756
+ }
757
+ ]
758
+ },
759
+ "dependencies": {
760
+ "@idosgames/core": "0.19.0",
761
+ "@idosgames/module-sdk": "0.6.0",
762
+ "@idosgames/react": "0.3.0",
763
+ "@idosgames/wallet": "0.5.2",
764
+ "@tanstack/react-query": "5.101.2",
765
+ "react": "19.2.7",
766
+ "three": "0.185.1",
767
+ "viem": "2.55.2",
768
+ "wagmi": "3.7.2"
769
+ },
770
+ "fileCount": 27,
771
+ "contentHash": "d7dea73b22c207167521b0867e4137eee7dbf761c5de9a45ca154beb562e5ea5"
772
+ },
773
+ {
774
+ "id": "idle-rpg",
775
+ "name": "Idle RPG",
776
+ "type": "template",
777
+ "engine": "phaser",
778
+ "genre": "idle-rpg",
779
+ "summary": "Idle RPG: heroes auto-battle and earn resources over time, with upgrades and offline progress.",
780
+ "description": "An incremental idle RPG built on Phaser. Heroes fight automatically, generate currency and loot over time, and keep progressing while the player is away. Includes an upgrade loop and offline-income accrual, so it fits any 'tap to grow / auto-battler / idle economy' request.",
781
+ "provides": [
782
+ "auto-battling heroes",
783
+ "idle resource generation over time",
784
+ "offline income accrual",
785
+ "upgrade / progression loop",
786
+ "2D sprite rendering (Phaser)"
787
+ ],
788
+ "tags": [
789
+ "idle",
790
+ "rpg",
791
+ "incremental",
792
+ "auto-battler",
793
+ "phaser",
794
+ "2d"
795
+ ],
796
+ "media": {
797
+ "image": "https://cloud.idosgames.com/drive/modules/idle-rpg/cover.png",
798
+ "video": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo.mp4"
799
+ },
800
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/idle-rpg/demo/",
801
+ "author": {
802
+ "name": "iDos Games",
803
+ "url": "https://idosgames.com"
804
+ },
805
+ "version": "0.1.0",
806
+ "events": {
807
+ "emits": [
808
+ {
809
+ "topic": "idle-rpg:character-upgraded@1",
810
+ "when": "a hero's level went up (after a successful client.character.upgradeCharacterLevel)",
811
+ "payload": {
812
+ "characterId": "string",
813
+ "level": "number"
814
+ }
815
+ }
816
+ ]
817
+ },
818
+ "dependencies": {
819
+ "@idosgames/core": "0.19.0",
820
+ "@idosgames/module-sdk": "0.6.0",
821
+ "@idosgames/react": "0.3.0",
822
+ "@idosgames/wallet": "0.5.2",
823
+ "@tanstack/react-query": "5.101.2",
824
+ "phaser": "4.2.1",
825
+ "react": "19.2.7",
826
+ "viem": "2.55.2",
827
+ "wagmi": "3.7.2"
828
+ },
829
+ "fileCount": 19,
830
+ "contentHash": "41b86a0971beeab985e44ed77e481ce38c29df0c2fe01e34fd50159d64646e97"
831
+ },
832
+ {
833
+ "id": "voxelcraft",
834
+ "name": "VoxelCraft",
835
+ "type": "template",
836
+ "engine": "three",
837
+ "genre": "sandbox",
838
+ "summary": "Minecraft-like voxel survival game: mine, craft, build, farm and fight from the first night to the dragon — with worlds generated from a picture + description (with or without AI).",
839
+ "description": "A first-person voxel game rendered in Three.js that follows Minecraft's mechanics 1:1 under its own names (every player-facing name lives in one table, so a commercial game can re-skin it; Minecraft names are accepted as aliases). Survival and creative modes: ores and tool tiers, crafting, smelting, armor, hunger, air and drowning, XP, enchanting, anvils, smithing, potions and beacons; farming, animals, taming and riding, fishing, boats and minecarts; villages with trading villagers, raids, and dozens of hostile and neutral mobs. Three dimensions — the overworld (biomes from deserts and jungles to the deep dark, caves, ocean temples, mansions, trial chambers, archaeology), the Inferno (Nether-like: fortresses, its own mobs and biomes) and the Beyond (End-like: citadel portal, the dragon boss, outer islands and cities, wings). Redstone (wire, torches, repeaters, comparators, pistons, observers, hoppers, dispensers, rails), weather, day/night, block light, fluids, achievements, generated music, a chat console with commands, and touch controls. The 'Create world' screen turns a reference picture and a text description into a world — locally in the browser (the picture read as a top-down map or as a mood, the text by keywords) or with InApp AI (client.ai, title feature \"voxel-world\") — via a compact WorldSpec recipe. Worlds autosave to 'My worlds'. The agent sees and drives the game through its debug surface (state, lookingAt, console commands). Covers any 'Minecraft clone', survival / crafting / mining game, block-building sandbox or 'generate a world from a picture' request; by far the largest feature module. Co-op multiplayer for up to 8 players, like Minecraft's 'Open to LAN': a player opens their world to the network (by invite code or in the public list, guest game mode, 'commands for everyone' switch), others join from the 'Network game' screen; the host grants operator, kicks and bans. Peer-to-peer over WebRTC (the SDK transport @idosgames/core/realtime, rooms and signaling on the engine's Multiplayer module; TURN relay from the engine when configured): each live dimension is simulated by one player and players may be in different dimensions at once; everyone's own inventory and progress stay theirs; when the host leaves or its tab dies the world moves to another player without stopping. Needs the title's Multiplayer section enabled (Host topology). Not included yet: AI-driven villagers and a dedicated server.",
840
+ "provides": [
841
+ "first-person voxel world: mine, place and break blocks",
842
+ "survival and creative modes (health, hunger, air, XP, death and respawn)",
843
+ "crafting, smelting, tool and armor tiers",
844
+ "enchanting, anvil, smithing, potions, beacon",
845
+ "farming, animals, taming and riding, fishing, boats",
846
+ "villages, trading villagers, raids",
847
+ "dozens of hostile and neutral mobs, bosses (dragon, ash lord)",
848
+ "three dimensions: overworld, Inferno (Nether-like), Beyond (End-like)",
849
+ "biomes, caves and structures (temples, mansions, fortresses, trial chambers, ruins)",
850
+ "redstone: wire, repeaters, comparators, pistons, observers, hoppers, rails and minecarts",
851
+ "weather, day/night cycle, block light and fluid simulation",
852
+ "achievements and procedurally generated music",
853
+ "chat console with commands (/give, /tp, /locate, /summon, …)",
854
+ "touch controls for mobile",
855
+ "world generation from a picture + description (WorldSpec recipe)",
856
+ "AI world generation via client.ai (feature \"voxel-world\")",
857
+ "AI builds objects from pictures out of coloured blocks (a plane, a car… — models of shapes)",
858
+ "AI recreates landscapes from pictures (terrain sketch, rivers, biomes)",
859
+ "co-op multiplayer up to 8 players (P2P over WebRTC, @idosgames/core/realtime)",
860
+ "open the world to the network: invite code or public list, guest game mode, operators, kick and ban",
861
+ "players in different dimensions at once; host migration without stopping the world",
862
+ "autosave and 'My worlds' (IndexedDB)",
863
+ "own player-facing names for a re-skinnable commercial game (Minecraft names as aliases)",
864
+ "3D block rendering (Three.js)"
865
+ ],
866
+ "tags": [
867
+ "voxel",
868
+ "sandbox",
869
+ "survival",
870
+ "crafting",
871
+ "minecraft",
872
+ "3d",
873
+ "first-person",
874
+ "open-world",
875
+ "redstone",
876
+ "mobile",
877
+ "three",
878
+ "ai",
879
+ "world-generation",
880
+ "multiplayer",
881
+ "co-op"
882
+ ],
883
+ "media": {
884
+ "image": "https://cloud.idosgames.com/drive/modules/voxelcraft/cover.png",
885
+ "video": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo.mp4"
886
+ },
887
+ "demoUrl": "https://cloud.idosgames.com/drive/modules/voxelcraft/demo/",
888
+ "author": {
889
+ "name": "iDos Games",
890
+ "url": "https://idosgames.com"
891
+ },
892
+ "version": "0.4.0",
893
+ "dependencies": {
894
+ "@idosgames/core": "0.19.0",
895
+ "@idosgames/module-sdk": "0.6.0",
896
+ "three": "0.185.1"
897
+ },
898
+ "fileCount": 426,
899
+ "contentHash": "1ce732b5d2b0e71a095b690b744fd20721ddbba38085a131418994e8152f303c"
900
+ },
901
+ {
902
+ "id": "mini-game",
903
+ "name": "Mini-game",
904
+ "type": "template",
905
+ "engine": "dom",
906
+ "genre": "casual",
907
+ "summary": "The smallest complete game: a 15-second 'catch the stars' round launched from the lobby's Play button, with a leaderboard score.",
908
+ "description": "A tiny game of its own mode (React/DOM, no engine): tap as many stars as you can in 15 seconds, gold stars are worth 3. The score goes to the title's leaderboard, and a round counts for quests that ask for games_played, for timed events that pay for the 'play_round' action and for season chains open to clients. The platform gives it to a new title when no other game fits the idea — it shows where a game plugs into the base (sign-in → lobby → Play) and is meant to be replaced by the real game. No demo settings of its own: it plays on the base's world.",
909
+ "provides": [
910
+ "a small tap game launched from the lobby",
911
+ "score submitted to the leaderboard",
912
+ "rounds counted by quests, events and the season",
913
+ "placeholder game to replace with the real one"
914
+ ],
915
+ "tags": [
916
+ "starter",
917
+ "mini-game",
918
+ "casual",
919
+ "tap",
920
+ "leaderboard"
921
+ ],
922
+ "author": {
923
+ "name": "iDos Games",
924
+ "url": "https://idosgames.com"
925
+ },
926
+ "version": "0.1.0",
927
+ "dependencies": {
928
+ "@idosgames/core": "0.19.0",
929
+ "@idosgames/module-sdk": "0.6.0",
982
930
  "@idosgames/react": "0.3.0",
983
931
  "react": "19.2.7"
984
932
  },
985
933
  "fileCount": 7,
986
- "contentHash": "ddd651cc2cff6692f7b98c2904c63f9e0548148b2b77d135c00be6c3039a1c56"
934
+ "contentHash": "26089593df1b939aee3317743caeda47f82971bfd85dbd73eb9e95a9bc5e3d5c"
987
935
  }
988
936
  ],
989
937
  "skills": [
@@ -1069,15 +1017,15 @@
1069
1017
  },
1070
1018
  {
1071
1019
  "name": "idosgames-compose-modules",
1072
- "description": "Merge several iDosGames modules into one game — combine genres (e.g. board-game + idle-rpg), share progress across modes, and add always-on chrome. Use this whenever a developer wants to COMBINE or MERGE multiple iDosGames templates/modules into a single title, switch between game modes, share currency/inventory across modules, or asks how the Mode Router, the nav-bar, activeOnly panels, the shared HUD (game-hud, sharedUi roles, shouldDraw), typed cross-module events (defineTopic/shape), or host-level shared state work. Builds on idosgames-getting-started (scaffolding) and idosgames-module-contract (a single module)."
1020
+ "description": "Put an iDosGames app together from the base and modules — the systems (shop, heroes, leaderboards, rewards…) as lobby tabs, one or several games behind \"Play\", progress shared across them. Use this whenever a developer wants to COMBINE or MERGE modules into a single title, add or remove a system, add a second game, switch between the lobby and game modes, share currency/inventory across modules, or asks how the lobby, \"Play\", ctx.modes, activeOnly panels, the shared-UI roles (sharedUi, shouldDraw, the \"modes\" role), typed cross-module events (defineTopic/shape) or host-level shared state work. Builds on idosgames-getting-started (scaffolding) and idosgames-module-contract (a single module)."
1073
1021
  },
1074
1022
  {
1075
1023
  "name": "idosgames-getting-started",
1076
- "description": "Start a new game or app on the iDosGames composable-module architecture: scaffold the host shell and plug in feature modules (board-game, idle-rpg, voxelcraft, …). Use this whenever a developer wants to CREATE an iDosGames project from scratch, add an iDosGames game module to a project, or asks how @idosgames/app-shell, @idosgames/module-sdk, the host shell, mountHost, or src/modules.ts fit together. Pairs with idosgames-module-contract (writing a module) and idosgames-compose-modules (merging several) and idosgames-project-structure (where code goes as the project grows). If pulling modules over MCP, use the @idosgames/mcp tools get_host_scaffold / get_module / get_manifest."
1024
+ "description": "Start a new game or app on the iDosGames composable-module architecture: scaffold the base (sign-in + the lobby on the host shell) and plug in modules — the systems (shop, heroes, leaderboards…) and the games (board-game, idle-rpg, voxelcraft, mini-game, …). Use this whenever a developer wants to CREATE an iDosGames project from scratch, add an iDosGames game module to a project, or asks how @idosgames/app-shell, @idosgames/module-sdk, the host shell, mountHost, or src/modules.ts fit together. Pairs with idosgames-module-contract (writing a module) and idosgames-compose-modules (merging several) and idosgames-project-structure (where code goes as the project grows). If pulling modules over MCP, use the @idosgames/mcp tools get_host_scaffold / get_module / get_manifest."
1077
1025
  },
1078
1026
  {
1079
1027
  "name": "idosgames-module-contract",
1080
- "description": "Write or modify an iDosGames feature module against the module contract in @idosgames/module-sdk: the Module manifest, ModuleContext, EngineScene (Three/Phaser/vanilla), UiPanel (React), route registration, and the shared controller-box bridge between an imperative scene and React panels. Use this whenever a developer authors a NEW module, edits an existing one (board-game, idle-rpg, voxelcraft, game-hud, workshop), or asks about defineModule, registerScene/registerPanel/registerRoute, activate/suspend, SceneMountContext, sharedUi / ctx.sharedUi.shouldDraw, ctx.events / defineTopic, ctx.content / ContentTypeHandler (letting the Workshop publish and open the game's content), ctx.navigate, the --idos-safe-* layout variables, or the {camelCase(id)}Module export convention."
1028
+ "description": "Write or modify an iDosGames feature module against the module contract in @idosgames/module-sdk: the Module manifest, ModuleContext, EngineScene (Three/Phaser/vanilla), UiPanel (React), route registration, and the shared controller-box bridge between an imperative scene and React panels. Use this whenever a developer authors a NEW module, edits an existing one (board-game, idle-rpg, voxelcraft, mini-game, store, character, workshop…), or asks about defineModule, registerScene/registerPanel/registerRoute, ctx.features (register / open / setBadge / setAvailable), ctx.modes, activate/suspend, SceneMountContext, sharedUi / ctx.sharedUi.shouldDraw, ctx.events / defineTopic, ctx.content / ContentTypeHandler (letting the Workshop publish and open the game's content), ctx.navigate, the --idos-safe-* layout variables, or the {camelCase(id)}Module export convention."
1081
1029
  },
1082
1030
  {
1083
1031
  "name": "idosgames-project-structure",
@@ -1089,7 +1037,7 @@
1089
1037
  },
1090
1038
  {
1091
1039
  "name": "idosgames-ui-kit",
1092
- "description": "Build and restyle game screens with the iDosGames UI kit (@idosgames/react/ui) and the ready screen modules (*-ui): change colours, animations and sounds in ONE file (src/ui.config.ts), install a shop / heroes / inventory / leaderboard / rewards / craft / marketplace / offers / events / season / friends / chat / invite / arena / profile / tutorials screen instead of writing it, open another module's screen with ctx.features.open, register a new screen with ctx.features.register, split a dense screen into popups (Popup, ConfirmPopup, bottom sheet on a phone), play UI sounds, celebrate a reward (icons fly to the balance counters), mark elements for tutorial hints (data-tutorial-anchor), and read the player's sound / motion prefs. Use this whenever the user asks to change how the game's interface looks, sounds or animates, to add or build a game screen or menu, a popup, a reward animation, a bottom navigation, a \"More\" menu, a settings screen, or touches @idosgames/react/ui, defineUiConfig, ui.config.ts, ctx.features, FeatureScreenProps, useCelebrate, usePlayerPrefs, Popup, Tabs or ResourceList."
1040
+ "description": "Build and restyle game screens with the iDosGames UI kit (@idosgames/react/ui) and the ready system modules (store, character, inventory, …): change colours, animations and sounds in ONE file (src/ui.config.ts), install a shop / heroes / inventory / leaderboard / rewards / craft / marketplace / offers / events / season / friends / chat / invite / arena / profile / tutorials / workshop system instead of writing it, open another module's screen with ctx.features.open, register a new screen (a lobby tab) with ctx.features.register and hide it while the title has no data (setAvailable), split a dense screen into popups (Popup, ConfirmPopup, bottom sheet on a phone), play UI sounds, celebrate a reward (icons fly to the balance counters), mark elements for tutorial hints (data-tutorial-anchor), and read the player's sound / motion prefs. Use this whenever the user asks to change how the game's interface looks, sounds or animates, to add or build a game screen or menu, a popup, a reward animation, a bottom navigation, a \"More\" menu, a settings screen, or touches @idosgames/react/ui, defineUiConfig, ui.config.ts, ctx.features, FeatureScreenProps, useCelebrate, usePlayerPrefs, Popup, Tabs or ResourceList."
1093
1041
  },
1094
1042
  {
1095
1043
  "name": "item-system",