@ak--47/dungeon-master 1.0.0 → 1.2.0

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 (104) hide show
  1. package/README.md +7 -7
  2. package/dungeons/technical/ad-spend-schema.json +128 -0
  3. package/dungeons/technical/ad-spend.js +116 -0
  4. package/dungeons/technical/anonymous-users-schema.json +92 -0
  5. package/dungeons/technical/anonymous-users.js +102 -0
  6. package/dungeons/technical/array-of-object-lookup-schema.json +191 -0
  7. package/dungeons/{array-of-object-lookup.js → technical/array-of-object-lookup.js} +12 -5
  8. package/dungeons/technical/experiments-schema.json +203 -0
  9. package/dungeons/technical/experiments.js +168 -0
  10. package/dungeons/technical/foobar-schema.json +362 -0
  11. package/dungeons/{foobar.js → technical/foobar.js} +3 -3
  12. package/dungeons/technical/group-analytics-schema.json +241 -0
  13. package/dungeons/technical/group-analytics.js +151 -0
  14. package/dungeons/technical/mirror-strategies-schema.json +84 -0
  15. package/dungeons/technical/mirror-strategies.js +126 -0
  16. package/dungeons/technical/nested-objects-schema.json +145 -0
  17. package/dungeons/technical/nested-objects.js +207 -0
  18. package/dungeons/technical/retention-cadence-schema.json +37 -0
  19. package/dungeons/{retention-cadence.js → technical/retention-cadence.js} +2 -3
  20. package/dungeons/technical/sanity-schema.json +185 -0
  21. package/dungeons/{sanity.js → technical/sanity.js} +4 -2
  22. package/dungeons/technical/scale-test-schema.json +70 -0
  23. package/dungeons/technical/scale-test.js +90 -0
  24. package/dungeons/technical/scd-schema.json +467 -0
  25. package/dungeons/{scd.js → technical/scd.js} +20 -10
  26. package/dungeons/technical/simple-schema.json +362 -0
  27. package/dungeons/{simple.js → technical/simple.js} +7 -7
  28. package/dungeons/technical/simplest-schema.json +724 -0
  29. package/dungeons/{simplest.js → technical/simplest.js} +7 -7
  30. package/dungeons/technical/text-generation-schema.json +1062 -0
  31. package/dungeons/{text-generation.js → technical/text-generation.js} +24 -11
  32. package/dungeons/vertical/community-schema.json +579 -0
  33. package/dungeons/vertical/community.js +794 -0
  34. package/dungeons/vertical/devtools-schema.json +601 -0
  35. package/dungeons/vertical/devtools.js +843 -0
  36. package/dungeons/vertical/ecommerce-schema.json +604 -0
  37. package/dungeons/{ecommerce.js → vertical/ecommerce.js} +43 -5
  38. package/dungeons/vertical/education-schema.json +5686 -0
  39. package/dungeons/{education.js → vertical/education.js} +70 -39
  40. package/dungeons/vertical/fintech-schema.json +630 -0
  41. package/dungeons/{fintech.js → vertical/fintech.js} +107 -56
  42. package/dungeons/vertical/fitness-schema.json +530 -0
  43. package/dungeons/vertical/fitness.js +808 -0
  44. package/dungeons/vertical/food-delivery-schema.json +36728 -0
  45. package/dungeons/{food.js → vertical/food-delivery.js} +67 -26
  46. package/dungeons/vertical/gaming-schema.json +438 -0
  47. package/dungeons/{gaming.js → vertical/gaming.js} +29 -16
  48. package/dungeons/vertical/healthcare-schema.json +549 -0
  49. package/dungeons/vertical/healthcare.js +775 -0
  50. package/dungeons/vertical/insurance-application-schema.json +485 -0
  51. package/dungeons/{insurance-application.js → vertical/insurance-application.js} +41 -31
  52. package/dungeons/vertical/logistics-schema.json +574 -0
  53. package/dungeons/vertical/logistics.js +799 -0
  54. package/dungeons/vertical/marketplace-schema.json +533 -0
  55. package/dungeons/vertical/marketplace.js +850 -0
  56. package/dungeons/vertical/media-schema.json +4749 -0
  57. package/dungeons/{media.js → vertical/media.js} +103 -19
  58. package/dungeons/vertical/rpg-schema.json +2491 -0
  59. package/dungeons/{rpg.js → vertical/rpg.js} +87 -60
  60. package/dungeons/vertical/sass-schema.json +3128 -0
  61. package/dungeons/{sass.js → vertical/sass.js} +65 -26
  62. package/dungeons/vertical/social-schema.json +620 -0
  63. package/dungeons/{social.js → vertical/social.js} +76 -17
  64. package/dungeons/vertical/travel-schema.json +580 -0
  65. package/dungeons/vertical/travel.js +742 -0
  66. package/index.js +20 -16
  67. package/lib/core/config-validator.js +286 -1
  68. package/lib/core/context.js +16 -5
  69. package/lib/core/storage.js +2 -0
  70. package/lib/generators/adspend.js +3 -3
  71. package/lib/generators/events.js +141 -14
  72. package/lib/generators/funnels.js +67 -7
  73. package/lib/generators/text.js +2 -2
  74. package/lib/orchestrators/user-loop.js +444 -22
  75. package/lib/templates/soup-presets.js +2 -2
  76. package/lib/utils/utils.js +4 -5
  77. package/package.json +4 -3
  78. package/scripts/dungeon-to-json.mjs +163 -0
  79. package/scripts/extract-dungeon-schema.mjs +343 -0
  80. package/scripts/json-to-dungeon.mjs +200 -0
  81. package/scripts/run-dungeon.mjs +76 -0
  82. package/scripts/run-many.mjs +118 -0
  83. package/scripts/verify-runner.mjs +42 -0
  84. package/types.d.ts +316 -1
  85. package/dungeons/array-of-object-lookup-schema.json +0 -327
  86. package/dungeons/ecommerce-schema.json +0 -462
  87. package/dungeons/education-schema.json +0 -2409
  88. package/dungeons/fintech-schema.json +0 -14034
  89. package/dungeons/foobar-schema.json +0 -403
  90. package/dungeons/food-delivery-schema.json +0 -192
  91. package/dungeons/food-delivery.js +0 -602
  92. package/dungeons/food-schema.json +0 -1152
  93. package/dungeons/gaming-schema.json +0 -1270
  94. package/dungeons/insurance-application-schema.json +0 -204
  95. package/dungeons/media-schema.json +0 -906
  96. package/dungeons/retention-cadence-schema.json +0 -78
  97. package/dungeons/rpg-schema.json +0 -4526
  98. package/dungeons/sanity-schema.json +0 -255
  99. package/dungeons/sass-schema.json +0 -1291
  100. package/dungeons/scd-schema.json +0 -919
  101. package/dungeons/simple-schema.json +0 -608
  102. package/dungeons/simplest-schema.json +0 -1418
  103. package/dungeons/social-schema.json +0 -1118
  104. package/dungeons/text-generation-schema.json +0 -3096
@@ -0,0 +1,530 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "event": "account created",
5
+ "isFirstEvent": true,
6
+ "properties": {
7
+ "referral_source": [
8
+ "organic",
9
+ "friend_invite",
10
+ "app_store",
11
+ "social_media",
12
+ "search"
13
+ ]
14
+ }
15
+ },
16
+ {
17
+ "event": "workout completed",
18
+ "weight": 8,
19
+ "properties": {
20
+ "duration_minutes": {
21
+ "$range": [
22
+ 17,
23
+ 73
24
+ ]
25
+ },
26
+ "calories_burned": {
27
+ "$range": [
28
+ 143,
29
+ 675
30
+ ]
31
+ },
32
+ "heart_rate_avg": {
33
+ "$range": [
34
+ 96,
35
+ 179
36
+ ]
37
+ },
38
+ "is_morning_workout": [
39
+ false
40
+ ],
41
+ "satisfaction_score": [
42
+ 2,
43
+ 3
44
+ ],
45
+ "coaching_mode": [
46
+ "self_guided"
47
+ ],
48
+ "challenge_mode": [
49
+ "solo"
50
+ ]
51
+ }
52
+ },
53
+ {
54
+ "event": "workout planned",
55
+ "weight": 6,
56
+ "properties": {
57
+ "planned_duration_minutes": {
58
+ "$range": [
59
+ 22,
60
+ 79
61
+ ]
62
+ },
63
+ "day_of_week": [
64
+ "monday",
65
+ "tuesday",
66
+ "wednesday",
67
+ "thursday",
68
+ "friday",
69
+ "saturday",
70
+ "sunday"
71
+ ],
72
+ "coaching_mode": [
73
+ "self_guided"
74
+ ]
75
+ }
76
+ },
77
+ {
78
+ "event": "meal logged",
79
+ "weight": 7,
80
+ "properties": {
81
+ "meal_type": [
82
+ "breakfast",
83
+ "lunch",
84
+ "dinner",
85
+ "snack"
86
+ ],
87
+ "calories": {
88
+ "$range": [
89
+ 99,
90
+ 1068
91
+ ]
92
+ },
93
+ "protein_g": {
94
+ "$range": [
95
+ 13,
96
+ 47
97
+ ]
98
+ },
99
+ "meal_quality": [
100
+ "healthy",
101
+ "balanced",
102
+ "indulgent"
103
+ ]
104
+ }
105
+ },
106
+ {
107
+ "event": "challenge joined",
108
+ "weight": 3,
109
+ "properties": {
110
+ "challenge_type": [
111
+ "steps",
112
+ "calories",
113
+ "streak",
114
+ "strength",
115
+ "team_relay"
116
+ ],
117
+ "duration_days": [
118
+ 7,
119
+ 14,
120
+ 21,
121
+ 30
122
+ ],
123
+ "participants": [
124
+ 13,
125
+ 34,
126
+ 15,
127
+ 14,
128
+ 20,
129
+ 26
130
+ ],
131
+ "challenge_mode": [
132
+ "solo"
133
+ ]
134
+ }
135
+ },
136
+ {
137
+ "event": "challenge completed",
138
+ "weight": 2,
139
+ "properties": {
140
+ "challenge_type": [
141
+ "steps",
142
+ "calories",
143
+ "streak",
144
+ "strength",
145
+ "team_relay"
146
+ ],
147
+ "final_rank": [
148
+ 40,
149
+ 15,
150
+ 14,
151
+ 24,
152
+ 19,
153
+ 38,
154
+ 11,
155
+ 34
156
+ ],
157
+ "completion_pct": {
158
+ "$range": [
159
+ 57,
160
+ 92
161
+ ]
162
+ },
163
+ "challenge_mode": [
164
+ "solo"
165
+ ]
166
+ }
167
+ },
168
+ {
169
+ "event": "achievement unlocked",
170
+ "weight": 2,
171
+ "properties": {
172
+ "achievement_type": [
173
+ "streak_milestone",
174
+ "weight_goal",
175
+ "distance_record",
176
+ "calories_target",
177
+ "social_champion",
178
+ "first_workout"
179
+ ],
180
+ "streak_days_at_unlock": [
181
+ 25,
182
+ 69,
183
+ 24,
184
+ 29,
185
+ 35,
186
+ 33,
187
+ 26,
188
+ 70,
189
+ 37
190
+ ]
191
+ }
192
+ },
193
+ {
194
+ "event": "friend added",
195
+ "weight": 2,
196
+ "properties": {
197
+ "source": [
198
+ "search",
199
+ "contacts",
200
+ "challenge",
201
+ "suggestion",
202
+ "qr_code"
203
+ ]
204
+ }
205
+ },
206
+ {
207
+ "event": "leaderboard viewed",
208
+ "weight": 4,
209
+ "properties": {
210
+ "leaderboard_type": [
211
+ "friends",
212
+ "global",
213
+ "challenge",
214
+ "local"
215
+ ],
216
+ "user_rank": {
217
+ "$range": [
218
+ 97,
219
+ 379
220
+ ]
221
+ }
222
+ }
223
+ },
224
+ {
225
+ "event": "progress checked",
226
+ "weight": 5,
227
+ "properties": {
228
+ "metric_viewed": [
229
+ "weight",
230
+ "body_fat",
231
+ "steps",
232
+ "calories_burned",
233
+ "workout_count",
234
+ "streaks"
235
+ ],
236
+ "trend_direction": [
237
+ "improving",
238
+ "stable",
239
+ "declining"
240
+ ],
241
+ "time_range": [
242
+ "week",
243
+ "month",
244
+ "3_months",
245
+ "year"
246
+ ]
247
+ }
248
+ },
249
+ {
250
+ "event": "coach session",
251
+ "weight": 3,
252
+ "properties": {
253
+ "session_type": [
254
+ "live_video",
255
+ "chat",
256
+ "plan_review",
257
+ "form_check"
258
+ ],
259
+ "duration_minutes": {
260
+ "$range": [
261
+ 19,
262
+ 49
263
+ ]
264
+ },
265
+ "satisfaction_score": [
266
+ 3,
267
+ 2
268
+ ],
269
+ "coach_speciality": [
270
+ "strength",
271
+ "cardio",
272
+ "nutrition",
273
+ "yoga",
274
+ "general"
275
+ ]
276
+ }
277
+ },
278
+ {
279
+ "event": "nutrition plan viewed",
280
+ "weight": 4,
281
+ "properties": {
282
+ "plan_type": [
283
+ "weight_loss",
284
+ "muscle_gain",
285
+ "maintenance",
286
+ "custom"
287
+ ],
288
+ "adherence_pct": {
289
+ "$range": [
290
+ 17,
291
+ 81
292
+ ]
293
+ }
294
+ }
295
+ },
296
+ {
297
+ "event": "heart rate recorded",
298
+ "weight": 3,
299
+ "properties": {
300
+ "bpm": {
301
+ "$range": [
302
+ 74,
303
+ 180
304
+ ]
305
+ },
306
+ "activity_state": [
307
+ "resting",
308
+ "warmup",
309
+ "active",
310
+ "peak",
311
+ "cooldown"
312
+ ],
313
+ "device": [
314
+ "watch",
315
+ "chest_strap",
316
+ "phone_sensor"
317
+ ]
318
+ }
319
+ },
320
+ {
321
+ "event": "app session",
322
+ "weight": 8,
323
+ "properties": {
324
+ "session_duration_sec": {
325
+ "$range": [
326
+ 262,
327
+ 1415
328
+ ]
329
+ },
330
+ "pages_viewed": [
331
+ 3,
332
+ 9,
333
+ 5
334
+ ]
335
+ }
336
+ },
337
+ {
338
+ "event": "notification received",
339
+ "weight": 5,
340
+ "properties": {
341
+ "notification_type": [
342
+ "workout_reminder",
343
+ "challenge_update",
344
+ "friend_activity",
345
+ "streak_warning",
346
+ "coaching_tip"
347
+ ],
348
+ "channel": [
349
+ "push",
350
+ "email",
351
+ "sms"
352
+ ],
353
+ "opened": [
354
+ true,
355
+ false
356
+ ]
357
+ }
358
+ },
359
+ {
360
+ "event": "subscription managed",
361
+ "weight": 2,
362
+ "properties": {
363
+ "action": [
364
+ "viewed_plans",
365
+ "started_trial",
366
+ "upgraded",
367
+ "downgraded",
368
+ "cancelled",
369
+ "renewed"
370
+ ],
371
+ "plan_viewed": [
372
+ "free",
373
+ "monthly",
374
+ "annual",
375
+ "family"
376
+ ]
377
+ }
378
+ },
379
+ {
380
+ "event": "profile updated",
381
+ "weight": 2,
382
+ "properties": {
383
+ "field_updated": [
384
+ "weight",
385
+ "height",
386
+ "goal",
387
+ "avatar",
388
+ "workout_preferences",
389
+ "notification_settings"
390
+ ]
391
+ }
392
+ },
393
+ {
394
+ "event": "account deactivated",
395
+ "isChurnEvent": true,
396
+ "returnLikelihood": 0.15,
397
+ "isStrictEvent": true,
398
+ "properties": {
399
+ "reason": [
400
+ "lost_motivation",
401
+ "cost",
402
+ "switched_app",
403
+ "injury",
404
+ "achieved_goal"
405
+ ]
406
+ }
407
+ }
408
+ ],
409
+ "funnels": [
410
+ {
411
+ "sequence": [
412
+ "account created",
413
+ "profile updated",
414
+ "workout planned",
415
+ "workout completed"
416
+ ],
417
+ "name": "Onboarding",
418
+ "isFirstFunnel": true,
419
+ "conversionRate": 45,
420
+ "timeToConvert": 72,
421
+ "weight": 3
422
+ },
423
+ {
424
+ "sequence": [
425
+ "workout planned",
426
+ "workout completed",
427
+ "progress checked"
428
+ ],
429
+ "name": "Workout Loop",
430
+ "conversionRate": 45,
431
+ "timeToConvert": 48,
432
+ "weight": 5
433
+ },
434
+ {
435
+ "sequence": [
436
+ "friend added",
437
+ "leaderboard viewed",
438
+ "challenge joined"
439
+ ],
440
+ "name": "Social Engagement",
441
+ "conversionRate": 35,
442
+ "timeToConvert": 96,
443
+ "weight": 3
444
+ },
445
+ {
446
+ "sequence": [
447
+ "challenge joined",
448
+ "workout completed",
449
+ "challenge completed",
450
+ "achievement unlocked"
451
+ ],
452
+ "name": "Challenge Completion",
453
+ "conversionRate": 30,
454
+ "timeToConvert": 336,
455
+ "weight": 2
456
+ },
457
+ {
458
+ "sequence": [
459
+ "coach session",
460
+ "workout planned",
461
+ "workout completed",
462
+ "progress checked"
463
+ ],
464
+ "name": "Coaching Path",
465
+ "conversionRate": 50,
466
+ "timeToConvert": 72,
467
+ "weight": 2
468
+ }
469
+ ],
470
+ "superProps": {
471
+ "platform": [
472
+ "ios",
473
+ "android"
474
+ ],
475
+ "workout_type": [
476
+ "strength",
477
+ "cardio",
478
+ "yoga",
479
+ "hiit",
480
+ "running",
481
+ "cycling"
482
+ ]
483
+ },
484
+ "userProps": {
485
+ "fitness_level": [
486
+ "beginner"
487
+ ],
488
+ "segment": [
489
+ "casual"
490
+ ],
491
+ "streak_days": [
492
+ 0
493
+ ],
494
+ "total_workouts": {
495
+ "$range": [
496
+ 0,
497
+ 0
498
+ ]
499
+ },
500
+ "preferred_workout": [
501
+ "strength",
502
+ "cardio",
503
+ "yoga",
504
+ "hiit",
505
+ "running",
506
+ "cycling"
507
+ ],
508
+ "goal": [
509
+ "weight_loss",
510
+ "muscle_gain",
511
+ "endurance",
512
+ "flexibility",
513
+ "general_health"
514
+ ]
515
+ },
516
+ "scdProps": {
517
+ "fitness_level": {
518
+ "type": "user",
519
+ "frequency": "month",
520
+ "timing": "fuzzy",
521
+ "max": 8,
522
+ "values": [
523
+ "beginner",
524
+ "intermediate",
525
+ "advanced",
526
+ "elite"
527
+ ]
528
+ }
529
+ }
530
+ }