make-mp-data 3.0.3 โ†’ 3.0.5

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 (70) hide show
  1. package/README.md +46 -0
  2. package/dungeons/array-of-object-lookup-schema.json +327 -0
  3. package/dungeons/array-of-object-lookup.js +29 -9
  4. package/dungeons/capstone/capstone-ic3.js +291 -0
  5. package/dungeons/capstone/capstone-ic4.js +598 -0
  6. package/dungeons/capstone/capstone-ic5.js +668 -0
  7. package/dungeons/capstone/generate-product-lookup.js +309 -0
  8. package/dungeons/ecommerce-schema.json +462 -0
  9. package/dungeons/{copilot.js โ†’ ecommerce.js} +79 -17
  10. package/dungeons/education-schema.json +2409 -0
  11. package/dungeons/education.js +226 -462
  12. package/dungeons/fintech-schema.json +14034 -0
  13. package/dungeons/fintech.js +134 -413
  14. package/dungeons/foobar-schema.json +403 -0
  15. package/dungeons/foobar.js +27 -4
  16. package/dungeons/food-delivery-schema.json +192 -0
  17. package/dungeons/food-delivery.js +602 -0
  18. package/dungeons/food-schema.json +1152 -0
  19. package/dungeons/food.js +173 -406
  20. package/dungeons/gaming-schema.json +1270 -0
  21. package/dungeons/gaming.js +182 -42
  22. package/dungeons/insurance-application-schema.json +204 -0
  23. package/dungeons/insurance-application.js +605 -0
  24. package/dungeons/media-schema.json +906 -0
  25. package/dungeons/media.js +250 -420
  26. package/dungeons/retention-cadence-schema.json +78 -0
  27. package/dungeons/retention-cadence.js +35 -1
  28. package/dungeons/rpg-schema.json +4526 -0
  29. package/dungeons/rpg.js +171 -429
  30. package/dungeons/sanity-schema.json +255 -0
  31. package/dungeons/sanity.js +21 -10
  32. package/dungeons/sass-schema.json +1291 -0
  33. package/dungeons/sass.js +241 -368
  34. package/dungeons/scd-schema.json +919 -0
  35. package/dungeons/scd.js +41 -13
  36. package/dungeons/simple-schema.json +608 -0
  37. package/dungeons/simple.js +52 -15
  38. package/dungeons/simplest-schema.json +1418 -0
  39. package/dungeons/simplest.js +392 -0
  40. package/dungeons/social-schema.json +1118 -0
  41. package/dungeons/social.js +150 -391
  42. package/dungeons/text-generation-schema.json +3096 -0
  43. package/dungeons/text-generation.js +71 -0
  44. package/index.js +8 -6
  45. package/lib/core/config-validator.js +28 -8
  46. package/lib/core/storage.js +5 -5
  47. package/lib/generators/events.js +4 -4
  48. package/lib/orchestrators/mixpanel-sender.js +16 -13
  49. package/lib/orchestrators/user-loop.js +14 -6
  50. package/lib/templates/soup-presets.js +188 -0
  51. package/lib/utils/utils.js +52 -6
  52. package/package.json +1 -1
  53. package/types.d.ts +20 -3
  54. package/dungeons/adspend.js +0 -130
  55. package/dungeons/anon.js +0 -128
  56. package/dungeons/benchmark-heavy.js +0 -240
  57. package/dungeons/benchmark-light.js +0 -140
  58. package/dungeons/big.js +0 -226
  59. package/dungeons/business.js +0 -391
  60. package/dungeons/complex.js +0 -428
  61. package/dungeons/experiments.js +0 -137
  62. package/dungeons/funnels.js +0 -309
  63. package/dungeons/mil.js +0 -323
  64. package/dungeons/mirror.js +0 -161
  65. package/dungeons/soup-test.js +0 -52
  66. package/dungeons/streaming.js +0 -372
  67. package/dungeons/strict-event-test.js +0 -30
  68. package/dungeons/student-teacher.js +0 -438
  69. package/dungeons/too-big-events.js +0 -203
  70. package/dungeons/user-agent.js +0 -209
package/dungeons/rpg.js CHANGED
@@ -10,97 +10,151 @@ const chance = u.initChance(SEED);
10
10
  const num_users = 5_000;
11
11
  const days = 100;
12
12
 
13
- /** @typedef {import("../../types.js").Dungeon} Config */
13
+ /** @typedef {import("../types.d.ts").Dungeon} Config */
14
14
 
15
- /**
16
- * ๐ŸŽฎ NEEDLE IN A HAYSTACK - GAME DESIGN
15
+ /*
16
+ * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
17
+ * DATASET OVERVIEW
18
+ * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
19
+ *
20
+ * D&D-Style Action RPG โ€” a fantasy adventure game with deep strategic gameplay
21
+ * and a player-driven economy.
22
+ *
23
+ * CORE LOOP: Players create characters (6 classes, 5 races) and progress through
24
+ * quests, dungeon crawls, and combat encounters. Strategic preparation (inspect,
25
+ * search for clues, Ancient Compass) creates skill gaps. Guild membership drives
26
+ * social retention. Monetization via premium currency, lucky charms, season pass,
27
+ * and subscription tiers (Free / Premium / Elite).
28
+ *
29
+ * SCALE: 5,000 users ร— 120 events = 600K events over 100 days
30
+ * 20 event types, 7 funnels, guild group analytics, subscription tiers
31
+ *
32
+ * KEY SYSTEMS:
33
+ * - Quests: accept โ†’ objective โ†’ turn in (5 quest types, gold/XP rewards)
34
+ * - Dungeons: enter โ†’ find treasure โ†’ exit (50 dungeons, party-based, 3 outcomes)
35
+ * - Combat: initiate โ†’ complete (6 enemy types, level scaling, loot)
36
+ * - Economy: item purchase/sell, real money purchases, vendor types
37
+ * - Progression: level up (1-50), character classes, stat points
38
+ * - Social: guild join/leave (5-100 members, guild levels 1-20)
39
+ * - Monetization: premium currency, lucky charms, legendary chests, season pass
40
+ * - Subscriptions: Free / Premium ($9.99/mo) / Elite ($19.99/mo)
41
+ */
42
+
43
+ /*
44
+ * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
45
+ * ANALYTICS HOOKS (8 architected patterns)
46
+ * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
17
47
  *
18
- * A D&D-style action RPG with deep strategic gameplay and a robust player-driven economy.
48
+ * 1. CONVERSION: Ancient Compass Effect
49
+ * Players who use the "Ancient Compass" item have 3x quest completion rate
50
+ * and earn 1.5x more rewards.
51
+ * โ†’ Mixpanel: Segment users by "use item" where item_type = "Ancient Compass"
52
+ * โ†’ Compare quest completion rate and average reward_gold / reward_xp
53
+ * โ†’ Look for compass_user = true on quest turned in events
54
+ *
55
+ * 2. TIME-BASED: Cursed Week (days 40-47)
56
+ * Death rates spike 5x, dungeon completion plummets, resurrection usage 4x.
57
+ * โ†’ Mixpanel: Chart "player death" count by day โ€” clear spike days 40-47
58
+ * โ†’ Filter cause_of_death = "Curse" and cursed_week = true
59
+ * โ†’ Compare completion_status distribution before/during/after
60
+ *
61
+ * 3. RETENTION: Early Guild Joiners
62
+ * Players who join a guild within first 3 days have 80% D30 retention vs 20%.
63
+ * โ†’ Mixpanel: Create cohort of users who did "guild joined" within first 3 days
64
+ * โ†’ Compare D30 retention rate and average events per user
65
+ * โ†’ Look for guild_member_retained = true on late engagement events
66
+ *
67
+ * 4. CHURN: Death Spiral
68
+ * Players with 3+ deaths in first week have 70% churn rate (events removed).
69
+ * โ†’ Mixpanel: Segment users by count of "player death" in first 7 days
70
+ * โ†’ Bucket: 0-2, 3-4, 5+ deaths โ€” compare events after day 7
71
+ * โ†’ Users with 3+ early deaths have 70% fewer post-week-1 events
72
+ *
73
+ * 5. PURCHASE VALUE: Lucky Charm LTV
74
+ * Lucky Charm Pack buyers become 5x higher LTV customers โ€” higher purchase
75
+ * frequency, upgraded tiers, more total spend.
76
+ * โ†’ Mixpanel: Segment by "real money purchase" where product contains "Lucky Charm"
77
+ * โ†’ Compare total revenue per user, purchase frequency, average order value
78
+ * โ†’ Look for lucky_charm_effect = true on subsequent purchases
79
+ *
80
+ * 6. BEHAVIORS TOGETHER: Strategic Explorers
81
+ * Players who both "inspect" AND "search for clues" before dungeons have
82
+ * 85% dungeon completion (vs 45%) and 2x treasure value.
83
+ * โ†’ Mixpanel: Segment users who did BOTH "inspect" AND "search for clues"
84
+ * โ†’ Filter dungeon funnel: enter โ†’ exit, compare completion_status rates
85
+ * โ†’ Look for strategic_explorer = true on exit dungeon / find treasure events
86
+ *
87
+ * 7. TIMED RELEASE: Shadowmourne Legendary Weapon (day 45)
88
+ * 2% of players find the legendary weapon after release. They get 90% combat
89
+ * win rate (vs 60%) and complete dungeons 40% faster.
90
+ * โ†’ Mixpanel: Filter "find treasure" where treasure_type = "Shadowmourne Legendary"
91
+ * โ†’ Compare combat win rate and dungeon time_spent_mins before/after day 45
92
+ * โ†’ Look for legendary_weapon_equipped = true
93
+ *
94
+ * 8. SUBSCRIPTION TIER: Premium/Elite Advantage
95
+ * Premium: 50% better combat wins, 1.4x rewards, 45% higher dungeon completion
96
+ * Elite: 70% better combat wins, 1.8x rewards, 65% higher dungeon completion,
97
+ * bonus treasure events, reduced death rates.
98
+ * โ†’ Mixpanel: Segment by subscription_tier super property
99
+ * โ†’ Compare combat win rates, reward_gold, dungeon completion, death rates
100
+ * โ†’ Look for subscriber_advantage = "Premium" or "Elite"
19
101
  *
20
- * CORE GAMEPLAY LOOP:
21
- * Players create characters (Warrior, Mage, Rogue, etc.) and embark on epic adventures through
22
- * a vast fantasy world. The game emphasizes strategic preparation, guild cooperation, and
23
- * risk/reward decision-making. Success requires both skill and planning.
102
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
103
+ * EXPECTED METRICS SUMMARY
104
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
24
105
  *
25
- * QUEST SYSTEM (events: quest accepted โ†’ objective completed โ†’ turned in):
26
- * - Five quest types: Main Story (narrative progression), Side Quests (world-building),
27
- * Bounties (repeatable challenges), Exploration (discovery rewards), Escorts (protect NPCs)
28
- * - Quest difficulty scaling based on player level
29
- * - Rewards include gold (in-game economy), XP (progression), and rare items
30
- * - Players can accept multiple quests and complete them in any order
106
+ * Hook | Metric | Baseline | Hook Effect | Ratio
107
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€
108
+ * Ancient Compass | Quest completion | 55% | 85-90% | ~1.6x
109
+ * Cursed Week | Death rate | 8% | 40% | 5x
110
+ * Early Guild Join | D30 Retention | 20% | 80% | 4x
111
+ * Death Spiral | Retention (3+ deaths)| 100% | 30% | 0.3x
112
+ * Lucky Charm | LTV | $15 | $75 | 5x
113
+ * Strategic Explorer | Dungeon completion | 45% | 85% | ~1.9x
114
+ * Legendary Weapon | Combat win rate | 60% | 90% | 1.5x
115
+ * Premium Tier | Combat win rate | 60% | 90% | 1.5x
116
+ * Elite Tier | Combat win rate | 60% | 102% | 1.7x
31
117
  *
32
- * DUNGEON EXPLORATION (events: enter โ†’ find treasure โ†’ exit):
33
- * - 50 unique dungeons with varying difficulty (Easy โ†’ Deadly)
34
- * - Party-based gameplay: solo or group (1-5 players coordinated through guilds)
35
- * - Treasure hunting: gold, weapons, armor, consumables, and legendary artifacts
36
- * - Three outcomes: completed (reached the end), abandoned (left early), died (party wipe)
37
- * - Time investment: 5-120 minutes per run
118
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
119
+ * ADVANCED ANALYSIS IDEAS
120
+ * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
38
121
  *
39
- * STRATEGIC PREPARATION (events: inspect, search for clues):
40
- * - "Inspect" lets players scout enemies, traps, and treasure before committing
41
- * - "Search for clues" reveals hidden paths, secret rewards, and dungeon mechanics
42
- * - Players who prepare strategically have significantly better outcomes
43
- * - The Ancient Compass is a rare consumable that enhances exploration success
122
+ * CROSS-HOOK PATTERNS:
44
123
  *
45
- * COMBAT SYSTEM (events: combat initiated โ†’ combat completed):
46
- * - Real-time combat against 6 enemy types: Goblins (swarms), Skeletons (undead),
47
- * Dragons (bosses), Demons (elite), Undead (cursed), Beasts (wilderness)
48
- * - Level-based difficulty: enemies scale from 1-50
49
- * - Three outcomes: Victory (loot), Defeat (death), Fled (escaped but no rewards)
50
- * - Combat duration reflects difficulty (10s quick fights โ†’ 300s epic battles)
124
+ * 1. The Ultimate Player: Users who use Ancient Compass (Hook #1), join guild
125
+ * early (Hook #3), buy Lucky Charm (Hook #5), get legendary weapon (Hook #7),
126
+ * and have Elite subscription (Hook #8) โ€” exceptional metrics across all dims.
51
127
  *
52
- * DEATH & RESURRECTION (event: player death):
53
- * - Players can die from monsters, traps, fall damage, poison, or friendly fire
54
- * - Death penalties: lost time, equipment durability loss, potential item drops
55
- * - Resurrection Stones (consumable) allow instant revival without penalties
56
- * - Deaths early in a player's journey often lead to frustration and churn
128
+ * 2. The Cursed Compass: Do Ancient Compass users survive the Cursed Week
129
+ * better than others?
57
130
  *
58
- * CHARACTER PROGRESSION (events: level up):
59
- * - 50 levels of progression (1-50)
60
- * - Each level grants stat points to customize character builds
61
- * - Six classes with unique playstyles and abilities
62
- * - Five races with lore and starting bonuses
131
+ * 3. Guild Churn Prevention: Does early guild joining (Hook #3) prevent
132
+ * death-spiral churn (Hook #4)?
63
133
  *
64
- * ECONOMY SYSTEMS:
65
- * - In-game gold economy: earn through quests/dungeons, spend at vendors
66
- * - Item trading: buy/sell weapons, armor, potions, scrolls (events: item purchased/sold)
67
- * - Vendor types: Town (general goods), Dungeon (mid-adventure resupply), Special Events (rare items)
68
- * - Item rarity: Common โ†’ Uncommon โ†’ Rare โ†’ Epic โ†’ Legendary (affects pricing)
134
+ * 4. LTV + Retention: Compare Lucky Charm buyers who joined guilds early vs.
135
+ * those who didn't.
69
136
  *
70
- * MONETIZATION (event: real money purchase):
71
- * - Free-to-play with optional purchases
72
- * - Premium currency (1000/5000 gems) for cosmetics and convenience
73
- * - Lucky Charm Pack: increases rare drop rates (creates high-LTV player segment)
74
- * - Legendary Weapon Chests: random powerful gear
75
- * - Season Pass: exclusive content, cosmetics, and progression boosts
76
- * - Cosmetic Bundles: no gameplay impact, pure customization
137
+ * 5. Subscription Impact on Churn: Do Premium/Elite subscribers avoid the
138
+ * death spiral churn pattern?
77
139
  *
78
- * GUILD SYSTEM (events: guild joined/left):
79
- * - Social cooperative play through guilds (5-100 members)
80
- * - Guild levels (1-20) unlock perks and group content
81
- * - Shared progression and coordinated dungeon runs
82
- * - Early guild joining creates social bonds that dramatically improve retention
83
- * - Reasons for leaving: Inactive guilds, found better fit, conflicts, guild disbanded
140
+ * COHORT ANALYSIS:
84
141
  *
85
- * ITEM USAGE (event: use item):
86
- * - Consumables: Health/Mana Potions (combat sustainability), Buff Scrolls (temporary power)
87
- * - Strategic items: Ancient Compass (exploration aid), Lucky Charm (drop rate boost)
88
- * - Combat items: Resurrection Stone (death prevention)
89
- * - Context matters: Combat, Exploration, Boss Fights, or Casual use
142
+ * - Cohort by starting week: Users who started during Cursed Week (days 40-47)
143
+ * should show different patterns
144
+ * - Cohort by character class: Do certain classes show different hook patterns?
145
+ * - Cohort by platform: Do PC users vs. console users exhibit different
146
+ * strategic explorer behavior?
147
+ * - Cohort by subscription tier: Track retention, engagement, and monetization
148
+ * differences
90
149
  *
91
- * SUBSCRIPTION TIERS (SCD: subscription_tier):
92
- * - Free: Base game access, earn everything through play
93
- * - Premium ($9.99/mo): Faster progression, extra inventory, priority queues
94
- * - Elite ($19.99/mo): All Premium benefits + exclusive content, monthly gems
95
- * - Tiers can change monthly based on player engagement and value perception
150
+ * FUNNEL ANALYSIS:
96
151
  *
97
- * WHY THESE EVENTS/PROPERTIES?
98
- * - Events model a complete game loop: onboarding โ†’ engagement โ†’ monetization โ†’ retention
99
- * - Properties enable cohort analysis: class/race choices, difficulty preferences, spending patterns
100
- * - Funnels reveal friction: where do players drop off in onboarding, quests, dungeons?
101
- * - Strategic depth (inspect, search, compass) creates skill gaps visible in the data
102
- * - Social features (guilds) and monetization (purchases) drive business metrics
103
- * - The "needle in haystack" hooks simulate real product insights hidden in production data
152
+ * - Onboarding Funnel: How does Ancient Compass usage affect tutorial โ†’ first
153
+ * quest conversion?
154
+ * - Dungeon Funnel: Compare enter โ†’ treasure โ†’ exit completion by strategic
155
+ * explorers and subscription tier
156
+ * - Quest Funnel: Compare quest accepted โ†’ completed rates before and during
157
+ * Cursed Week
104
158
  */
105
159
 
106
160
  // Generate consistent item/location IDs for lookup tables
@@ -158,7 +212,7 @@ const config = {
158
212
  weight: 4,
159
213
  props: {
160
214
  "dungeon_id": u.pickAWinner(dungeonIds),
161
- "difficulty": u.pickAWinner(["Easy", "Medium", "Hard", "Deadly"]),
215
+ "difficulty": ["Easy", "Medium", "Hard", "Deadly"],
162
216
  }
163
217
  },
164
218
  {
@@ -198,21 +252,21 @@ const config = {
198
252
  weight: 1,
199
253
  isFirstEvent: true,
200
254
  properties: {
201
- "character_class": u.pickAWinner([
255
+ "character_class": [
202
256
  "Warrior",
203
257
  "Mage",
204
258
  "Rogue",
205
259
  "Cleric",
206
260
  "Ranger",
207
261
  "Paladin"
208
- ]),
209
- "starting_race": u.pickAWinner([
262
+ ],
263
+ "starting_race": [
210
264
  "Human",
211
265
  "Elf",
212
266
  "Dwarf",
213
267
  "Halfling",
214
268
  "Orc"
215
- ]),
269
+ ],
216
270
  }
217
271
  },
218
272
  {
@@ -228,13 +282,13 @@ const config = {
228
282
  weight: 15,
229
283
  properties: {
230
284
  "quest_id": u.pickAWinner(questIds),
231
- "quest_type": u.pickAWinner([
285
+ "quest_type": [
232
286
  "Main Story",
233
287
  "Side Quest",
234
288
  "Bounty",
235
289
  "Exploration",
236
290
  "Escort"
237
- ]),
291
+ ],
238
292
  "recommended_level": u.weighNumRange(1, 50),
239
293
  }
240
294
  },
@@ -260,7 +314,7 @@ const config = {
260
314
  weight: 18,
261
315
  properties: {
262
316
  "dungeon_id": u.pickAWinner(dungeonIds),
263
- "difficulty": u.pickAWinner(["Easy", "Medium", "Hard", "Deadly"]),
317
+ "difficulty": ["Easy", "Medium", "Hard", "Deadly"],
264
318
  "party_size": u.weighNumRange(1, 5),
265
319
  }
266
320
  },
@@ -270,21 +324,21 @@ const config = {
270
324
  properties: {
271
325
  "dungeon_id": u.pickAWinner(dungeonIds),
272
326
  "time_spent_mins": u.weighNumRange(5, 120, 0.6, 30),
273
- "completion_status": u.pickAWinner(["completed", "abandoned", "died"]),
327
+ "completion_status": ["completed", "abandoned", "died"],
274
328
  }
275
329
  },
276
330
  {
277
331
  event: "find treasure",
278
332
  weight: 16,
279
333
  properties: {
280
- "treasure_type": u.pickAWinner([
334
+ "treasure_type": [
281
335
  "Gold",
282
336
  "Weapon",
283
337
  "Armor",
284
338
  "Potion",
285
339
  "Scroll",
286
340
  "Rare Artifact"
287
- ]),
341
+ ],
288
342
  "treasure_value": u.weighNumRange(5, 1000, 1.2, 50),
289
343
  }
290
344
  },
@@ -292,13 +346,13 @@ const config = {
292
346
  event: "player death",
293
347
  weight: 8,
294
348
  properties: {
295
- "cause_of_death": u.pickAWinner([
349
+ "cause_of_death": [
296
350
  "Monster",
297
351
  "Trap",
298
352
  "Fall Damage",
299
353
  "Poison",
300
354
  "Friendly Fire"
301
- ]),
355
+ ],
302
356
  "player_level": u.weighNumRange(1, 50),
303
357
  "resurrection_used": u.pickAWinner([true, false], 0.25),
304
358
  }
@@ -316,16 +370,16 @@ const config = {
316
370
  weight: 11,
317
371
  properties: {
318
372
  "item_id": u.pickAWinner(itemIds),
319
- "item_type": u.pickAWinner([
373
+ "item_type": [
320
374
  "Weapon",
321
375
  "Armor",
322
376
  "Potion",
323
377
  "Scroll",
324
378
  "Mount",
325
379
  "Cosmetic"
326
- ]),
380
+ ],
327
381
  "price_gold": u.weighNumRange(10, 500, 0.8, 100),
328
- "vendor_type": u.pickAWinner(["Town", "Dungeon", "Special Event"]),
382
+ "vendor_type": ["Town", "Dungeon", "Special Event"],
329
383
  }
330
384
  },
331
385
  {
@@ -333,13 +387,13 @@ const config = {
333
387
  weight: 7,
334
388
  properties: {
335
389
  "item_id": u.pickAWinner(itemIds),
336
- "item_type": u.pickAWinner([
390
+ "item_type": [
337
391
  "Weapon",
338
392
  "Armor",
339
393
  "Potion",
340
394
  "Scroll",
341
395
  "Junk"
342
- ]),
396
+ ],
343
397
  "sell_price": u.weighNumRange(5, 250, 0.5, 50),
344
398
  }
345
399
  },
@@ -347,16 +401,16 @@ const config = {
347
401
  event: "real money purchase",
348
402
  weight: 3,
349
403
  properties: {
350
- "product": u.pickAWinner([
404
+ "product": [
351
405
  "Premium Currency (1000)",
352
406
  "Premium Currency (5000)",
353
407
  "Lucky Charm Pack",
354
408
  "Legendary Weapon Chest",
355
409
  "Cosmetic Bundle",
356
410
  "Season Pass"
357
- ]),
411
+ ],
358
412
  "price_usd": u.pickAWinner([4.99, 9.99, 19.99, 49.99, 99.99]),
359
- "payment_method": u.pickAWinner(["Credit Card", "PayPal", "Apple Pay", "Google Pay"]),
413
+ "payment_method": ["Credit Card", "PayPal", "Apple Pay", "Google Pay"],
360
414
  }
361
415
  },
362
416
  {
@@ -371,38 +425,38 @@ const config = {
371
425
  event: "guild left",
372
426
  weight: 1,
373
427
  properties: {
374
- "reason": u.pickAWinner([
428
+ "reason": [
375
429
  "Inactive",
376
430
  "Found Better Guild",
377
431
  "Conflict",
378
432
  "Disbanded"
379
- ]),
433
+ ],
380
434
  }
381
435
  },
382
436
  {
383
437
  event: "inspect",
384
438
  weight: 9,
385
439
  properties: {
386
- "inspect_target": u.pickAWinner([
440
+ "inspect_target": [
387
441
  "NPC",
388
442
  "Monster",
389
443
  "Treasure Chest",
390
444
  "Door",
391
445
  "Statue",
392
446
  "Bookshelf"
393
- ]),
447
+ ],
394
448
  }
395
449
  },
396
450
  {
397
451
  event: "search for clues",
398
452
  weight: 8,
399
453
  properties: {
400
- "location_type": u.pickAWinner([
454
+ "location_type": [
401
455
  "Dungeon Entrance",
402
456
  "Hidden Room",
403
457
  "Quest Location",
404
458
  "Town Square"
405
- ]),
459
+ ],
406
460
  "clue_found": u.pickAWinner([true, false], 0.6),
407
461
  }
408
462
  },
@@ -411,29 +465,29 @@ const config = {
411
465
  weight: 14,
412
466
  properties: {
413
467
  "item_id": u.pickAWinner(itemIds),
414
- "item_type": u.pickAWinner([
468
+ "item_type": [
415
469
  "Health Potion",
416
470
  "Mana Potion",
417
471
  "Buff Scroll",
418
472
  "Ancient Compass",
419
473
  "Lucky Charm",
420
474
  "Resurrection Stone"
421
- ]),
422
- "context": u.pickAWinner(["Combat", "Exploration", "Boss Fight", "Casual"]),
475
+ ],
476
+ "context": ["Combat", "Exploration", "Boss Fight", "Casual"],
423
477
  }
424
478
  },
425
479
  {
426
480
  event: "combat initiated",
427
481
  weight: 20,
428
482
  properties: {
429
- "enemy_type": u.pickAWinner([
483
+ "enemy_type": [
430
484
  "Goblin",
431
485
  "Skeleton",
432
486
  "Dragon",
433
487
  "Demon",
434
488
  "Undead",
435
489
  "Beast"
436
- ]),
490
+ ],
437
491
  "enemy_level": u.weighNumRange(1, 50),
438
492
  "combat_duration_sec": u.weighNumRange(10, 300, 0.7, 60),
439
493
  }
@@ -442,49 +496,49 @@ const config = {
442
496
  event: "combat completed",
443
497
  weight: 18,
444
498
  properties: {
445
- "outcome": u.pickAWinner(["Victory", "Defeat", "Fled"]),
499
+ "outcome": ["Victory", "Defeat", "Fled"],
446
500
  "loot_gained": u.pickAWinner([true, false], 0.7),
447
501
  }
448
502
  }
449
503
  ],
450
504
 
451
505
  superProps: {
452
- platform: u.pickAWinner([
506
+ platform: [
453
507
  "PC",
454
508
  "Mac",
455
509
  "PlayStation",
456
510
  "Xbox",
457
511
  "Switch"
458
- ]),
459
- graphics_quality: u.pickAWinner([
512
+ ],
513
+ graphics_quality: [
460
514
  "Low",
461
515
  "Medium",
462
516
  "High",
463
517
  "Ultra"
464
- ]),
518
+ ],
465
519
  subscription_tier: u.pickAWinner(["Free", "Free", "Free", "Premium", "Elite"]),
466
520
  },
467
521
 
468
522
  scdProps: {},
469
523
 
470
524
  userProps: {
471
- "preferred_playstyle": u.pickAWinner([
525
+ "preferred_playstyle": [
472
526
  "Solo Explorer",
473
527
  "Group Raider",
474
528
  "PvP Fighter",
475
529
  "Quest Completionist",
476
530
  "Treasure Hunter"
477
- ]),
531
+ ],
478
532
  "total_playtime_hours": u.weighNumRange(1, 500, 1.5, 50),
479
533
  "achievement_points": u.weighNumRange(0, 5000, 0.8, 500),
480
- "favorite_class": u.pickAWinner([
534
+ "favorite_class": [
481
535
  "Warrior",
482
536
  "Mage",
483
537
  "Rogue",
484
538
  "Cleric",
485
539
  "Ranger",
486
540
  "Paladin"
487
- ]),
541
+ ],
488
542
  },
489
543
 
490
544
  groupKeys: [
@@ -863,315 +917,3 @@ const config = {
863
917
  };
864
918
 
865
919
  export default config;
866
-
867
- /**
868
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
869
- * NEEDLE IN A HAYSTACK - D&D ADVENTURE GAME ANALYTICS
870
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
871
- *
872
- * A D&D-style adventure game dungeon with 8 deliberately architected analytics
873
- * insights hidden in the data. This dungeon is designed to showcase advanced
874
- * product analytics patterns and demonstrate how to find "needles" (meaningful
875
- * insights) in "haystacks" (large datasets).
876
- *
877
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
878
- * ๐Ÿ“Š DATASET OVERVIEW
879
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
880
- *
881
- * - 5,000 users over 100 days
882
- * - 2.4M events across 20+ event types
883
- * - 3 funnels (onboarding, dungeon exploration, quest completion)
884
- * - Group analytics (guilds)
885
- * - Lookup tables (items, quests, dungeons)
886
- * - Subscription tiers (Free, Premium, Elite)
887
- *
888
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
889
- * ๐ŸŽฏ THE 8 ARCHITECTED HOOKS
890
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
891
- *
892
- * Each hook creates a specific, discoverable analytics insight that simulates
893
- * real-world product behavior patterns.
894
- *
895
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
896
- * 1๏ธโƒฃ CONVERSION HOOK: The Ancient Compass Effect
897
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
898
- *
899
- * PATTERN: Players who use the "Ancient Compass" item early in their journey
900
- * have 3x higher quest completion rates and earn 1.5x more rewards.
901
- *
902
- * HOW TO FIND IT:
903
- * - Segment users by: used item where item_type = "Ancient Compass"
904
- * - Compare: Quest completion rate
905
- * - Compare: Average reward_gold and reward_xp
906
- *
907
- * EXPECTED INSIGHT: Compass users complete 85-90% of accepted quests vs. 55%
908
- * baseline. This simulates a power-user feature that drives core conversion.
909
- *
910
- * REAL-WORLD ANALOGUE: A key feature (e.g., tutorial completion, power tool
911
- * usage) that dramatically improves user success rates.
912
- *
913
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
914
- * 2๏ธโƒฃ TIME-BASED HOOK: The Cursed Week
915
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
916
- *
917
- * PATTERN: During days 40-47 of the dataset, a "curse" strikes the game world:
918
- * - Death rates spike 5x
919
- * - Dungeon completion rates plummet
920
- * - Resurrection item usage increases 4x
921
- *
922
- * HOW TO FIND IT:
923
- * - Chart: player death event count by day
924
- * - Filter: days 40-47
925
- * - Compare: completion_status = "completed" vs "died" over time
926
- *
927
- * EXPECTED INSIGHT: Clear spike in deaths around day 43-44, with a marked
928
- * increase in cursed_week: true property and cause_of_death: "Curse".
929
- *
930
- * REAL-WORLD ANALOGUE: A bug, server issue, or game balance change that
931
- * temporarily degrades user experience.
932
- *
933
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
934
- * 3๏ธโƒฃ RETENTION HOOK: Early Guild Joiners
935
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
936
- *
937
- * PATTERN: Players who join a guild within their first 3 days have:
938
- * - 80% 30-day retention vs. 20% baseline
939
- * - More events throughout their lifecycle
940
- * - Higher engagement in week 2-4
941
- *
942
- * HOW TO FIND IT:
943
- * - Create cohort: users who did "guild joined" within first 3 days
944
- * - Compare: D30 retention rate
945
- * - Compare: Average events per user
946
- *
947
- * EXPECTED INSIGHT: Early guild joiners show dramatically higher retention
948
- * curves, especially after the critical first week.
949
- *
950
- * REAL-WORLD ANALOGUE: Social features (friend invites, team creation) that
951
- * create "sticky" behavior and drive retention.
952
- *
953
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
954
- * 4๏ธโƒฃ CHURN HOOK: Death Spiral
955
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
956
- *
957
- * PATTERN: Players who die 3+ times in their first week have a 70% churn rate -
958
- * they stop playing after week 1.
959
- *
960
- * HOW TO FIND IT:
961
- * - Segment users by: count of "player death" events in first 7 days
962
- * - Bucket: 0-2 deaths, 3-4 deaths, 5+ deaths
963
- * - Compare: Events after day 7 (retention proxy)
964
- *
965
- * EXPECTED INSIGHT: Users with 3+ early deaths have 70% fewer events after day 7.
966
- * The hook literally removes 70% of their post-week-1 events.
967
- *
968
- * REAL-WORLD ANALOGUE: Poor onboarding experience or early friction that causes
969
- * users to abandon the product.
970
- *
971
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
972
- * 5๏ธโƒฃ PURCHASE VALUE HOOK: Lucky Charm LTV
973
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
974
- *
975
- * PATTERN: Players who purchase the "Lucky Charm Pack" early become 5x higher
976
- * LTV customers:
977
- * - They upgrade to higher-tier purchases
978
- * - They purchase more frequently
979
- * - Their total spend is 5x the average
980
- *
981
- * HOW TO FIND IT:
982
- * - Segment users by: did "real money purchase" where product contains "Lucky Charm"
983
- * - Compare: Total revenue per user
984
- * - Compare: Purchase frequency
985
- * - Compare: Average order value
986
- *
987
- * EXPECTED INSIGHT: Lucky Charm buyers have dramatically higher LTV, with
988
- * lucky_charm_effect: true properties on subsequent purchases.
989
- *
990
- * REAL-WORLD ANALOGUE: An initial purchase or subscription that predicts high
991
- * lifetime value (e.g., premium feature adoption).
992
- *
993
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
994
- * 6๏ธโƒฃ BEHAVIORS TOGETHER HOOK: Strategic Explorers
995
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
996
- *
997
- * PATTERN: Players who both "inspect" AND "search for clues" before entering
998
- * dungeons have:
999
- * - 85% dungeon completion rate vs. 45% baseline
1000
- * - 2x treasure value found
1001
- * - Marked as strategic_explorer: true
1002
- *
1003
- * HOW TO FIND IT:
1004
- * - Create segment: users who did BOTH "inspect" AND "search for clues"
1005
- * - Filter funnel: enter dungeon โ†’ exit dungeon
1006
- * - Compare: completion_status = "completed" rate
1007
- * - Compare: Average treasure_value
1008
- *
1009
- * EXPECTED INSIGHT: Users who exhibit both preparatory behaviors have vastly
1010
- * superior outcomes. This is a "power user" behavioral signature.
1011
- *
1012
- * REAL-WORLD ANALOGUE: Users who engage with multiple features together (e.g.,
1013
- * read docs + watch tutorial) have better outcomes than single-feature users.
1014
- *
1015
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
1016
- * 7๏ธโƒฃ TIMED RELEASE HOOK: Shadowmourne Legendary Weapon
1017
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
1018
- *
1019
- * PATTERN: On day 45, a legendary weapon "Shadowmourne" is released:
1020
- * - 2% of players find it after release
1021
- * - These players have 90% combat win rate (vs. 60% baseline)
1022
- * - They complete dungeons 40% faster
1023
- * - Marked as legendary_weapon_equipped: true
1024
- *
1025
- * HOW TO FIND IT:
1026
- * - Filter events: time >= day 45
1027
- * - Filter: find treasure where treasure_type = "Shadowmourne Legendary"
1028
- * - Compare: combat_completed outcome = "Victory" rate
1029
- * - Compare: exit dungeon time_spent_mins
1030
- *
1031
- * EXPECTED INSIGHT: After day 45, a small cohort of "legendary weapon owners"
1032
- * dominates all game modes. Clear before/after in their performance metrics.
1033
- *
1034
- * REAL-WORLD ANALOGUE: A new feature release or product tier that creates a
1035
- * distinct high-performing user segment.
1036
- *
1037
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
1038
- * 8๏ธโƒฃ SUBSCRIPTION TIER HOOK: Premium/Elite Advantage
1039
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
1040
- *
1041
- * PATTERN: Premium and Elite subscribers have dramatically better outcomes:
1042
- * - Premium: 50% better combat win rate, 1.4x rewards, 45% higher dungeon completion
1043
- * - Elite: 70% better combat win rate, 1.8x rewards, 65% higher dungeon completion
1044
- * - Elite users get bonus treasure events
1045
- * - Marked as subscriber_advantage: "Premium" or "Elite"
1046
- *
1047
- * HOW TO FIND IT:
1048
- * - Segment users by: subscription_tier
1049
- * - Compare: Combat win rates by tier
1050
- * - Compare: Average reward_gold by tier
1051
- * - Compare: Dungeon completion rates by tier
1052
- * - Compare: Death rates by tier
1053
- *
1054
- * EXPECTED INSIGHT: Clear tier-based performance differences. Elite > Premium > Free
1055
- * across all engagement and success metrics.
1056
- *
1057
- * REAL-WORLD ANALOGUE: Subscription tiers that provide gameplay advantages (power-ups,
1058
- * boosts, premium content) resulting in measurable outcome differences.
1059
- *
1060
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1061
- * ๐Ÿ” ADVANCED ANALYSIS IDEAS
1062
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1063
- *
1064
- * CROSS-HOOK PATTERNS:
1065
- *
1066
- * 1. The Ultimate Player: Users who:
1067
- * - Use Ancient Compass (Hook #1)
1068
- * - Join guild early (Hook #3)
1069
- * - Buy Lucky Charm (Hook #5)
1070
- * - Get legendary weapon (Hook #7)
1071
- * - Have Elite subscription (Hook #8)
1072
- * These players should have exceptional metrics across all dimensions.
1073
- *
1074
- * 2. The Cursed Compass: Do Ancient Compass users survive the Cursed Week
1075
- * better than others?
1076
- *
1077
- * 3. Guild Churn Prevention: Does early guild joining (Hook #3) prevent
1078
- * death-spiral churn (Hook #4)?
1079
- *
1080
- * 4. LTV + Retention: Compare Lucky Charm buyers who joined guilds early vs.
1081
- * those who didn't.
1082
- *
1083
- * 5. Subscription Impact on Churn: Do Premium/Elite subscribers avoid the
1084
- * death spiral churn pattern?
1085
- *
1086
- * COHORT ANALYSIS:
1087
- *
1088
- * - Cohort by starting week: Users who started during Cursed Week (days 40-47)
1089
- * should show different patterns
1090
- * - Cohort by character class: Do certain classes show different hook patterns?
1091
- * - Cohort by platform: Do PC users vs. console users exhibit different
1092
- * strategic explorer behavior?
1093
- * - Cohort by subscription tier: Track retention, engagement, and monetization
1094
- * differences
1095
- *
1096
- * FUNNEL ANALYSIS:
1097
- *
1098
- * - Onboarding Funnel: How does Ancient Compass usage affect tutorial โ†’ first
1099
- * quest conversion?
1100
- * - Dungeon Funnel: Compare enter โ†’ treasure โ†’ exit completion by strategic
1101
- * explorers and subscription tier
1102
- * - Quest Funnel: Compare quest accepted โ†’ completed rates before and during
1103
- * Cursed Week
1104
- *
1105
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1106
- * ๐Ÿ“ˆ EXPECTED METRICS SUMMARY
1107
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1108
- *
1109
- * Hook | Metric | Baseline | Hook Effect | Ratio
1110
- * โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€|โ”€โ”€โ”€โ”€โ”€โ”€
1111
- * Ancient Compass | Quest completion | 55% | 85-90% | ~1.6x
1112
- * Cursed Week | Death rate | 8% | 40% | 5x
1113
- * Early Guild Join | D30 Retention | 20% | 80% | 4x
1114
- * Death Spiral | Retention (3+ deaths)| 100% | 30% | 0.3x
1115
- * Lucky Charm | LTV | $15 | $75 | 5x
1116
- * Strategic Explorer | Dungeon completion | 45% | 85% | ~1.9x
1117
- * Legendary Weapon | Combat win rate | 60% | 90% | 1.5x
1118
- * Premium Tier | Combat win rate | 60% | 90% | 1.5x
1119
- * Elite Tier | Combat win rate | 60% | 102% | 1.7x
1120
- *
1121
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1122
- * ๐ŸŽฎ HOW TO RUN THIS DUNGEON
1123
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1124
- *
1125
- * From the dm4 root directory:
1126
- *
1127
- * npm start
1128
- *
1129
- * Or programmatically:
1130
- *
1131
- * import generate from './index.js';
1132
- * import config from './dungeons/harness-gaming.js';
1133
- * const results = await generate(config);
1134
- *
1135
- * OUTPUT FILES (with writeToDisk: false, format: "parquet", gzip: true):
1136
- *
1137
- * - needle-in-haystack__events.parquet.gz - All event data
1138
- * - needle-in-haystack__user_profiles.parquet.gz - User profiles
1139
- * - needle-in-haystack__group_profiles.parquet.gz - Guild profiles
1140
- * - needle-in-haystack__item_id_lookup.parquet.gz - Item catalog
1141
- * - needle-in-haystack__quest_id_lookup.parquet.gz - Quest catalog
1142
- * - needle-in-haystack__dungeon_id_lookup.parquet.gz - Dungeon catalog
1143
- *
1144
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1145
- * ๐Ÿงช TESTING YOUR ANALYTICS PLATFORM
1146
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1147
- *
1148
- * This dungeon is perfect for testing:
1149
- *
1150
- * 1. Segmentation: Can you identify the Ancient Compass power users?
1151
- * 2. Anomaly Detection: Can you detect the Cursed Week automatically?
1152
- * 3. Retention Analysis: Can you discover the early guild joining pattern?
1153
- * 4. Churn Prediction: Can you predict churn based on early death patterns?
1154
- * 5. LTV Modeling: Can you identify high-LTV users early (Lucky Charm buyers)?
1155
- * 6. Behavioral Analysis: Can you find the strategic explorer pattern?
1156
- * 7. Feature Impact: Can you measure the Legendary Weapon release impact?
1157
- * 8. Tier Analysis: Can you quantify subscription tier value differences?
1158
- *
1159
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1160
- * ๐Ÿ’ก WHY "NEEDLE IN A HAYSTACK"?
1161
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1162
- *
1163
- * Each hook is a "needle" - a meaningful, actionable insight hidden in a
1164
- * "haystack" of 2.4M events. The challenge is:
1165
- *
1166
- * 1. FINDING the needles (discovery)
1167
- * 2. VALIDATING they're real patterns (statistical significance)
1168
- * 3. UNDERSTANDING why they matter (business impact)
1169
- * 4. ACTING on them (product decisions)
1170
- *
1171
- * This mirrors real-world product analytics: your data contains valuable insights,
1172
- * but you need the right tools and skills to find them.
1173
- *
1174
- * Happy Hunting! ๐ŸŽฏ
1175
- *
1176
- * โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
1177
- */