@ak--47/dungeon-master 1.0.0 → 1.1.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 (103) 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 +91 -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} +11 -4
  8. package/dungeons/technical/experiments-schema.json +197 -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} +2 -2
  12. package/dungeons/technical/group-analytics-schema.json +149 -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} +1 -1
  20. package/dungeons/technical/sanity-schema.json +185 -0
  21. package/dungeons/{sanity.js → technical/sanity.js} +3 -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 +270 -0
  25. package/dungeons/{scd.js → technical/scd.js} +19 -10
  26. package/dungeons/technical/simple-schema.json +278 -0
  27. package/dungeons/{simple.js → technical/simple.js} +6 -6
  28. package/dungeons/technical/simplest-schema.json +635 -0
  29. package/dungeons/{simplest.js → technical/simplest.js} +6 -6
  30. package/dungeons/technical/text-generation-schema.json +1059 -0
  31. package/dungeons/{text-generation.js → technical/text-generation.js} +23 -9
  32. package/dungeons/vertical/community-schema.json +557 -0
  33. package/dungeons/vertical/community.js +788 -0
  34. package/dungeons/vertical/devtools-schema.json +580 -0
  35. package/dungeons/vertical/devtools.js +837 -0
  36. package/dungeons/vertical/ecommerce-schema.json +586 -0
  37. package/dungeons/{ecommerce.js → vertical/ecommerce.js} +34 -3
  38. package/dungeons/vertical/education-schema.json +697 -0
  39. package/dungeons/{education.js → vertical/education.js} +54 -36
  40. package/dungeons/vertical/fintech-schema.json +563 -0
  41. package/dungeons/{fintech.js → vertical/fintech.js} +91 -53
  42. package/dungeons/vertical/fitness-schema.json +508 -0
  43. package/dungeons/vertical/fitness.js +802 -0
  44. package/dungeons/vertical/food-delivery-schema.json +678 -0
  45. package/dungeons/{food.js → vertical/food-delivery.js} +51 -23
  46. package/dungeons/vertical/gaming-schema.json +394 -0
  47. package/dungeons/{gaming.js → vertical/gaming.js} +9 -7
  48. package/dungeons/vertical/healthcare-schema.json +527 -0
  49. package/dungeons/vertical/healthcare.js +769 -0
  50. package/dungeons/vertical/insurance-application-schema.json +466 -0
  51. package/dungeons/{insurance-application.js → vertical/insurance-application.js} +33 -29
  52. package/dungeons/vertical/logistics-schema.json +552 -0
  53. package/dungeons/vertical/logistics.js +793 -0
  54. package/dungeons/vertical/marketplace-schema.json +511 -0
  55. package/dungeons/vertical/marketplace.js +844 -0
  56. package/dungeons/vertical/media-schema.json +787 -0
  57. package/dungeons/{media.js → vertical/media.js} +94 -16
  58. package/dungeons/vertical/rpg-schema.json +654 -0
  59. package/dungeons/{rpg.js → vertical/rpg.js} +78 -57
  60. package/dungeons/vertical/sass-schema.json +653 -0
  61. package/dungeons/{sass.js → vertical/sass.js} +49 -23
  62. package/dungeons/vertical/social-schema.json +552 -0
  63. package/dungeons/{social.js → vertical/social.js} +60 -14
  64. package/dungeons/vertical/travel-schema.json +558 -0
  65. package/dungeons/vertical/travel.js +736 -0
  66. package/index.js +19 -15
  67. package/lib/core/config-validator.js +286 -1
  68. package/lib/core/context.js +7 -5
  69. package/lib/generators/adspend.js +3 -3
  70. package/lib/generators/events.js +141 -14
  71. package/lib/generators/funnels.js +67 -7
  72. package/lib/generators/text.js +2 -2
  73. package/lib/orchestrators/user-loop.js +441 -22
  74. package/lib/templates/soup-presets.js +2 -2
  75. package/lib/utils/utils.js +4 -5
  76. package/package.json +4 -3
  77. package/scripts/dungeon-to-json.mjs +163 -0
  78. package/scripts/extract-dungeon-schema.mjs +297 -0
  79. package/scripts/json-to-dungeon.mjs +200 -0
  80. package/scripts/run-dungeon.mjs +76 -0
  81. package/scripts/run-many.mjs +118 -0
  82. package/scripts/verify-runner.mjs +42 -0
  83. package/types.d.ts +313 -1
  84. package/dungeons/array-of-object-lookup-schema.json +0 -327
  85. package/dungeons/ecommerce-schema.json +0 -462
  86. package/dungeons/education-schema.json +0 -2409
  87. package/dungeons/fintech-schema.json +0 -14034
  88. package/dungeons/foobar-schema.json +0 -403
  89. package/dungeons/food-delivery-schema.json +0 -192
  90. package/dungeons/food-delivery.js +0 -602
  91. package/dungeons/food-schema.json +0 -1152
  92. package/dungeons/gaming-schema.json +0 -1270
  93. package/dungeons/insurance-application-schema.json +0 -204
  94. package/dungeons/media-schema.json +0 -906
  95. package/dungeons/retention-cadence-schema.json +0 -78
  96. package/dungeons/rpg-schema.json +0 -4526
  97. package/dungeons/sanity-schema.json +0 -255
  98. package/dungeons/sass-schema.json +0 -1291
  99. package/dungeons/scd-schema.json +0 -919
  100. package/dungeons/simple-schema.json +0 -608
  101. package/dungeons/simplest-schema.json +0 -1418
  102. package/dungeons/social-schema.json +0 -1118
  103. package/dungeons/text-generation-schema.json +0 -3096
@@ -1,403 +0,0 @@
1
- {
2
- "schema": {
3
- "token": "",
4
- "seed": "0.5990981939869162",
5
- "numDays": 30,
6
- "numEvents": 2000000000,
7
- "numUsers": 2000000,
8
- "format": "json",
9
- "region": "US",
10
- "hasAnonIds": false,
11
- "hasSessionIds": false,
12
- "batchSize": 2500000,
13
- "hasAdSpend": false,
14
- "hasAvatar": false,
15
- "hasBrowser": false,
16
- "hasCampaigns": false,
17
- "hasIOSDevices": false,
18
- "hasLocation": false,
19
- "isAnonymous": true,
20
- "hasAndroidDevices": false,
21
- "hasDesktopDevices": false,
22
- "writeToDisk": false,
23
- "concurrency": 1,
24
- "events": [
25
- {
26
- "event": "foo",
27
- "weight": 10,
28
- "properties": {}
29
- },
30
- {
31
- "event": "bar",
32
- "weight": 9,
33
- "properties": {}
34
- },
35
- {
36
- "event": "baz",
37
- "weight": 8,
38
- "properties": {}
39
- },
40
- {
41
- "event": "qux",
42
- "weight": 7,
43
- "properties": {}
44
- },
45
- {
46
- "event": "garply",
47
- "weight": 6,
48
- "properties": {}
49
- },
50
- {
51
- "event": "durtle",
52
- "weight": 5,
53
- "properties": {}
54
- },
55
- {
56
- "event": "linny",
57
- "weight": 4,
58
- "properties": {}
59
- },
60
- {
61
- "event": "fonk",
62
- "weight": 3,
63
- "properties": {}
64
- },
65
- {
66
- "event": "crumn",
67
- "weight": 2,
68
- "properties": {}
69
- },
70
- {
71
- "event": "yak",
72
- "weight": 1,
73
- "properties": {}
74
- }
75
- ],
76
- "superProps": {
77
- "string": [
78
- "red",
79
- "orange",
80
- "yellow",
81
- "green",
82
- "blue",
83
- "indigo",
84
- "violet"
85
- ],
86
- "number": {
87
- "functionName": "integer",
88
- "args": []
89
- },
90
- "boolean": [
91
- true,
92
- false
93
- ],
94
- "date": [
95
- "2024-09-18T21:48:28.173Z",
96
- "2024-12-09T03:17:46.661Z",
97
- "2024-02-26T07:52:14.943Z",
98
- "2024-04-22T08:35:17.647Z",
99
- "2024-11-25T17:03:58.061Z",
100
- "2024-01-14T21:46:58.982Z",
101
- "2024-06-20T12:47:25.687Z",
102
- "2024-08-13T22:18:08.665Z",
103
- "2024-08-09T07:47:18.321Z",
104
- "2024-06-21T19:04:43.432Z",
105
- "2024-03-09T00:18:37.705Z",
106
- "2024-08-02T09:23:41.699Z",
107
- "2024-11-26T13:25:08.673Z",
108
- "2024-05-23T11:51:34.238Z",
109
- "2024-10-24T20:14:05.106Z",
110
- "2024-10-01T18:52:32.463Z",
111
- "2024-10-15T19:22:40.675Z",
112
- "2024-06-13T21:29:11.962Z",
113
- "2024-08-29T12:02:48.632Z",
114
- "2024-12-22T12:11:40.809Z",
115
- "2024-01-03T03:39:19.446Z",
116
- "2024-06-28T10:05:43.908Z",
117
- "2024-12-01T18:49:00.447Z",
118
- "2024-12-30T05:44:23.418Z",
119
- "2024-03-14T22:38:40.833Z",
120
- "2024-12-28T06:45:31.946Z",
121
- "2024-07-20T21:40:19.498Z",
122
- "2024-12-26T06:44:41.982Z",
123
- "2024-10-28T13:45:35.409Z",
124
- "2024-02-28T00:11:54.916Z",
125
- "2024-07-08T10:01:57.834Z",
126
- "2024-02-23T08:00:59.386Z",
127
- "2024-08-20T05:23:33.024Z",
128
- "2024-02-10T20:52:46.564Z",
129
- "2024-08-24T21:32:15.202Z",
130
- "2024-06-17T03:51:35.142Z",
131
- "2024-04-09T13:13:45.218Z",
132
- "2024-07-26T16:31:51.091Z",
133
- "2024-05-26T04:06:33.013Z",
134
- "2024-11-05T17:15:37.412Z",
135
- "2024-10-20T17:01:38.205Z",
136
- "2024-01-08T05:09:18.692Z",
137
- "2024-08-24T13:52:14.774Z",
138
- "2024-06-26T13:47:07.276Z",
139
- "2024-06-19T15:05:53.246Z",
140
- "2024-05-01T04:06:52.028Z",
141
- "2024-05-26T22:45:59.626Z",
142
- "2024-04-17T20:50:58.460Z",
143
- "2024-07-28T04:32:04.578Z",
144
- "2024-01-29T05:31:48.744Z",
145
- "2024-08-06T18:47:29.190Z",
146
- "2024-04-03T23:12:20.415Z",
147
- "2024-09-13T08:47:35.938Z",
148
- "2024-07-27T15:12:15.145Z",
149
- "2024-10-24T00:39:21.835Z",
150
- "2024-10-08T16:50:36.591Z",
151
- "2024-02-27T15:53:19.204Z",
152
- "2024-04-21T08:24:05.883Z",
153
- "2024-03-08T10:07:46.720Z",
154
- "2024-01-10T08:36:19.554Z",
155
- "2024-02-17T12:56:00.562Z",
156
- "2024-10-03T07:54:46.486Z",
157
- "2024-05-29T10:18:36.289Z",
158
- "2024-05-06T23:27:07.145Z",
159
- "2024-05-27T08:41:47.787Z",
160
- "2024-09-16T12:22:09.573Z",
161
- "2024-05-03T00:31:06.036Z",
162
- "2024-11-24T19:38:43.380Z",
163
- "2024-06-03T04:01:56.328Z",
164
- "2024-05-04T02:25:25.455Z",
165
- "2024-12-19T18:35:25.052Z",
166
- "2024-05-07T21:54:28.113Z",
167
- "2024-11-24T09:58:08.766Z",
168
- "2024-03-17T02:46:20.903Z",
169
- "2024-09-04T09:20:24.930Z",
170
- "2024-02-04T10:23:33.624Z",
171
- "2024-01-26T02:42:06.668Z",
172
- "2024-08-11T02:26:21.969Z",
173
- "2024-07-11T13:34:51.283Z",
174
- "2024-12-20T00:09:10.080Z",
175
- "2024-05-28T00:20:07.079Z",
176
- "2024-01-13T14:54:03.339Z",
177
- "2024-08-10T17:18:12.759Z",
178
- "2024-10-06T15:05:11.437Z",
179
- "2024-11-18T03:53:12.932Z",
180
- "2024-02-19T18:06:13.680Z",
181
- "2024-08-03T11:48:00.207Z",
182
- "2024-11-22T15:19:47.316Z",
183
- "2024-06-30T19:56:49.636Z",
184
- "2024-12-03T00:25:23.926Z",
185
- "2024-07-30T15:27:18.198Z",
186
- "2024-09-07T01:40:58.245Z",
187
- "2024-05-16T05:24:14.727Z",
188
- "2024-11-14T03:46:49.323Z",
189
- "2024-02-16T09:18:23.473Z",
190
- "2024-10-19T14:07:11.462Z",
191
- "2024-02-09T08:52:04.735Z",
192
- "2024-06-06T09:41:11.810Z",
193
- "2024-05-07T23:14:05.114Z",
194
- "2024-06-03T06:52:21.652Z"
195
- ]
196
- },
197
- "userProps": {
198
- "luckyNumber": {
199
- "functionName": "integer",
200
- "args": []
201
- },
202
- "spiritAnimal": [
203
- "duck",
204
- "dog",
205
- "otter",
206
- "penguin",
207
- "cat",
208
- "elephant",
209
- "lion",
210
- "cheetah",
211
- "giraffe",
212
- "zebra",
213
- "rhino",
214
- "hippo",
215
- "whale",
216
- "dolphin",
217
- "shark",
218
- "octopus",
219
- "squid",
220
- "jellyfish",
221
- "starfish",
222
- "seahorse",
223
- "crab",
224
- "lobster",
225
- "shrimp",
226
- "clam",
227
- "snail",
228
- "slug",
229
- "butterfly",
230
- "moth",
231
- "bee",
232
- "wasp",
233
- "ant",
234
- "beetle",
235
- "ladybug",
236
- "caterpillar",
237
- "centipede",
238
- "millipede",
239
- "scorpion",
240
- "spider",
241
- "tarantula",
242
- "tick",
243
- "mite",
244
- "mosquito",
245
- "fly",
246
- "dragonfly",
247
- "damselfly",
248
- "grasshopper",
249
- "cricket",
250
- "locust",
251
- "mantis",
252
- "cockroach",
253
- "termite",
254
- "praying mantis",
255
- "walking stick",
256
- "stick bug",
257
- "leaf insect",
258
- "lacewing",
259
- "aphid",
260
- "cicada",
261
- "thrips",
262
- "psyllid",
263
- "scale insect",
264
- "whitefly",
265
- "mealybug",
266
- "planthopper",
267
- "leafhopper",
268
- "treehopper",
269
- "flea",
270
- "louse",
271
- "bedbug",
272
- "flea beetle",
273
- "weevil",
274
- "longhorn beetle",
275
- "leaf beetle",
276
- "tiger beetle",
277
- "ground beetle",
278
- "lady beetle",
279
- "firefly",
280
- "click beetle",
281
- "rove beetle",
282
- "scarab beetle",
283
- "dung beetle",
284
- "stag beetle",
285
- "rhinoceros beetle",
286
- "hercules beetle",
287
- "goliath beetle",
288
- "jewel beetle",
289
- "tortoise beetle"
290
- ],
291
- "created": [
292
- "2024-09-18T21:48:28.173Z",
293
- "2024-12-09T03:17:46.661Z",
294
- "2024-02-26T07:52:14.943Z",
295
- "2024-04-22T08:35:17.647Z",
296
- "2024-11-25T17:03:58.061Z",
297
- "2024-01-14T21:46:58.982Z",
298
- "2024-06-20T12:47:25.687Z",
299
- "2024-08-13T22:18:08.665Z",
300
- "2024-08-09T07:47:18.321Z",
301
- "2024-06-21T19:04:43.432Z",
302
- "2024-03-09T00:18:37.705Z",
303
- "2024-08-02T09:23:41.699Z",
304
- "2024-11-26T13:25:08.673Z",
305
- "2024-05-23T11:51:34.238Z",
306
- "2024-10-24T20:14:05.106Z",
307
- "2024-10-01T18:52:32.463Z",
308
- "2024-10-15T19:22:40.675Z",
309
- "2024-06-13T21:29:11.962Z",
310
- "2024-08-29T12:02:48.632Z",
311
- "2024-12-22T12:11:40.809Z",
312
- "2024-01-03T03:39:19.446Z",
313
- "2024-06-28T10:05:43.908Z",
314
- "2024-12-01T18:49:00.447Z",
315
- "2024-12-30T05:44:23.418Z",
316
- "2024-03-14T22:38:40.833Z",
317
- "2024-12-28T06:45:31.946Z",
318
- "2024-07-20T21:40:19.498Z",
319
- "2024-12-26T06:44:41.982Z",
320
- "2024-10-28T13:45:35.409Z",
321
- "2024-02-28T00:11:54.916Z",
322
- "2024-07-08T10:01:57.834Z",
323
- "2024-02-23T08:00:59.386Z",
324
- "2024-08-20T05:23:33.024Z",
325
- "2024-02-10T20:52:46.564Z",
326
- "2024-08-24T21:32:15.202Z",
327
- "2024-06-17T03:51:35.142Z",
328
- "2024-04-09T13:13:45.218Z",
329
- "2024-07-26T16:31:51.091Z",
330
- "2024-05-26T04:06:33.013Z",
331
- "2024-11-05T17:15:37.412Z",
332
- "2024-10-20T17:01:38.205Z",
333
- "2024-01-08T05:09:18.692Z",
334
- "2024-08-24T13:52:14.774Z",
335
- "2024-06-26T13:47:07.276Z",
336
- "2024-06-19T15:05:53.246Z",
337
- "2024-05-01T04:06:52.028Z",
338
- "2024-05-26T22:45:59.626Z",
339
- "2024-04-17T20:50:58.460Z",
340
- "2024-07-28T04:32:04.578Z",
341
- "2024-01-29T05:31:48.744Z",
342
- "2024-08-06T18:47:29.190Z",
343
- "2024-04-03T23:12:20.415Z",
344
- "2024-09-13T08:47:35.938Z",
345
- "2024-07-27T15:12:15.145Z",
346
- "2024-10-24T00:39:21.835Z",
347
- "2024-10-08T16:50:36.591Z",
348
- "2024-02-27T15:53:19.204Z",
349
- "2024-04-21T08:24:05.883Z",
350
- "2024-03-08T10:07:46.720Z",
351
- "2024-01-10T08:36:19.554Z",
352
- "2024-02-17T12:56:00.562Z",
353
- "2024-10-03T07:54:46.486Z",
354
- "2024-05-29T10:18:36.289Z",
355
- "2024-05-06T23:27:07.145Z",
356
- "2024-05-27T08:41:47.787Z",
357
- "2024-09-16T12:22:09.573Z",
358
- "2024-05-03T00:31:06.036Z",
359
- "2024-11-24T19:38:43.380Z",
360
- "2024-06-03T04:01:56.328Z",
361
- "2024-05-04T02:25:25.455Z",
362
- "2024-12-19T18:35:25.052Z",
363
- "2024-05-07T21:54:28.113Z",
364
- "2024-11-24T09:58:08.766Z",
365
- "2024-03-17T02:46:20.903Z",
366
- "2024-09-04T09:20:24.930Z",
367
- "2024-02-04T10:23:33.624Z",
368
- "2024-01-26T02:42:06.668Z",
369
- "2024-08-11T02:26:21.969Z",
370
- "2024-07-11T13:34:51.283Z",
371
- "2024-12-20T00:09:10.080Z",
372
- "2024-05-28T00:20:07.079Z",
373
- "2024-01-13T14:54:03.339Z",
374
- "2024-08-10T17:18:12.759Z",
375
- "2024-10-06T15:05:11.437Z",
376
- "2024-11-18T03:53:12.932Z",
377
- "2024-02-19T18:06:13.680Z",
378
- "2024-08-03T11:48:00.207Z",
379
- "2024-11-22T15:19:47.316Z",
380
- "2024-06-30T19:56:49.636Z",
381
- "2024-12-03T00:25:23.926Z",
382
- "2024-07-30T15:27:18.198Z",
383
- "2024-09-07T01:40:58.245Z",
384
- "2024-05-16T05:24:14.727Z",
385
- "2024-11-14T03:46:49.323Z",
386
- "2024-02-16T09:18:23.473Z",
387
- "2024-10-19T14:07:11.462Z",
388
- "2024-02-09T08:52:04.735Z",
389
- "2024-06-06T09:41:11.810Z",
390
- "2024-05-07T23:14:05.114Z",
391
- "2024-06-03T06:52:21.652Z"
392
- ]
393
- },
394
- "scdProps": {},
395
- "mirrorProps": {},
396
- "lookupTables": [],
397
- "groupKeys": [],
398
- "groupProps": {}
399
- },
400
- "hooks": "function (record, type, meta) {\n\t\t// event hook: high-weight events get a \"hot\" flag, low-weight get \"cold\"\n\t\tif (type === \"event\") {\n\t\t\tconst hotEvents = [\"foo\", \"bar\", \"baz\"];\n\t\t\tconst coldEvents = [\"crumn\", \"yak\"];\n\t\t\tif (hotEvents.includes(record.event)) {\n\t\t\t\trecord.temperature = \"hot\";\n\t\t\t} else if (coldEvents.includes(record.event)) {\n\t\t\t\trecord.temperature = \"cold\";\n\t\t\t} else {\n\t\t\t\trecord.temperature = \"warm\";\n\t\t\t}\n\t\t}\n\n\t\t// everything hook: hash-based cohort — 10% of users (by distinct_id) get doubled events\n\t\tif (type === \"everything\") {\n\t\t\tif (record.length > 0) {\n\t\t\t\tconst userId = record[0].user_id || record[0].distinct_id || \"\";\n\t\t\t\tif (userId && userId.charCodeAt(0) % 10 === 0) {\n\t\t\t\t\t// power user: duplicate each event with a slight time offset\n\t\t\t\t\tconst extras = record.slice(0, 3).map(e => ({\n\t\t\t\t\t\t...e,\n\t\t\t\t\t\tevent: e.event,\n\t\t\t\t\t\tuser_id: e.user_id,\n\t\t\t\t\t\ttime: e.time,\n\t\t\t\t\t\tis_duplicate: true,\n\t\t\t\t\t}));\n\t\t\t\t\treturn record.concat(extras);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn record;\n\t\t}\n\n\t\treturn record;\n\t}",
401
- "timestamp": "2026-04-10T01:39:06.924Z",
402
- "version": "4.0"
403
- }
@@ -1,192 +0,0 @@
1
- {
2
- "events": [
3
- {
4
- "event": "account created",
5
- "weight": 1,
6
- "isFirstEvent": true,
7
- "properties": {
8
- "signup_method": ["email", "google", "apple", "facebook"],
9
- "referral_source": ["organic", "referral", "paid_ad", "social_media"]
10
- }
11
- },
12
- {
13
- "event": "app opened",
14
- "weight": 2,
15
- "isSessionStartEvent": true,
16
- "properties": {
17
- "open_source": ["direct", "push_notification", "deeplink", "widget"]
18
- }
19
- },
20
- {
21
- "event": "browse restaurants",
22
- "weight": 15,
23
- "properties": {
24
- "cuisine_filter": ["American", "Italian", "Chinese", "Japanese", "Mexican", "Indian", "Thai", "Mediterranean"],
25
- "sort_by": ["recommended", "distance", "rating", "price", "delivery_time"],
26
- "price_filter": ["any", "$", "$$", "$$$", "$$$$"]
27
- }
28
- },
29
- {
30
- "event": "search",
31
- "weight": 10,
32
- "properties": {
33
- "results_count": { "$range": [0, 50] },
34
- "search_type": ["dish", "restaurant", "cuisine"]
35
- }
36
- },
37
- {
38
- "event": "restaurant viewed",
39
- "weight": 14,
40
- "properties": {
41
- "cuisine_type": ["American", "Italian", "Chinese", "Japanese", "Mexican", "Indian", "Thai", "Mediterranean"],
42
- "avg_rating": { "$range": [1, 5] },
43
- "delivery_time_est": { "$range": [15, 75] },
44
- "price_tier": ["$", "$$", "$$$", "$$$$"]
45
- }
46
- },
47
- {
48
- "event": "view menu item",
49
- "weight": 16,
50
- "properties": {
51
- "item_category": ["entree", "appetizer", "drink", "dessert", "side"],
52
- "item_price": { "$range": [3, 55] },
53
- "has_photo": [true, false]
54
- }
55
- },
56
- {
57
- "event": "favorite item",
58
- "weight": 5,
59
- "properties": {
60
- "item_category": ["entree", "appetizer", "drink", "dessert", "side"],
61
- "item_price": { "$range": [3, 55] }
62
- }
63
- },
64
- {
65
- "event": "add to cart",
66
- "weight": 12,
67
- "properties": {
68
- "item_price": { "$range": [3, 55] },
69
- "quantity": { "$range": [1, 5] },
70
- "customization_count": { "$range": [0, 4] }
71
- }
72
- },
73
- {
74
- "event": "remove from cart",
75
- "weight": 3,
76
- "properties": {
77
- "removal_reason": ["changed_mind", "too_expensive", "substitution"]
78
- }
79
- },
80
- {
81
- "event": "checkout started",
82
- "weight": 8,
83
- "properties": {
84
- "cart_total": { "$range": [10, 120] },
85
- "items_count": { "$range": [1, 8] },
86
- "delivery_address_saved": [true, false]
87
- }
88
- },
89
- {
90
- "event": "order placed",
91
- "weight": 7,
92
- "properties": {
93
- "payment_method": ["credit_card", "apple_pay", "google_pay", "debit_card", "paypal"],
94
- "order_total": { "$range": [12, 150] },
95
- "tip_amount": { "$range": [0, 25] },
96
- "delivery_fee": { "$range": [0, 10] }
97
- }
98
- },
99
- {
100
- "event": "order tracked",
101
- "weight": 9,
102
- "properties": {
103
- "tracking_status": ["confirmed", "preparing", "picked_up", "en_route", "delivered"],
104
- "eta_mins": { "$range": [5, 60] }
105
- }
106
- },
107
- {
108
- "event": "order delivered",
109
- "weight": 6,
110
- "properties": {
111
- "delivery_time_mins": { "$range": [15, 80] },
112
- "on_time": [true, false]
113
- }
114
- },
115
- {
116
- "event": "order rated",
117
- "weight": 5,
118
- "properties": {
119
- "food_rating": { "$range": [1, 5] },
120
- "delivery_rating": { "$range": [1, 5] },
121
- "would_reorder": [true, false]
122
- }
123
- },
124
- {
125
- "event": "promotion viewed",
126
- "weight": 6,
127
- "properties": {
128
- "promo_type": ["banner", "push_notification", "in_feed", "email"],
129
- "promo_value": ["10%", "15%", "20%", "25%", "$5 off", "$10 off", "free delivery"]
130
- }
131
- },
132
- {
133
- "event": "coupon applied",
134
- "weight": 3,
135
- "properties": {
136
- "discount_type": ["percent", "flat", "free_delivery"],
137
- "discount_value": { "$range": [5, 40] }
138
- }
139
- },
140
- {
141
- "event": "reorder initiated",
142
- "weight": 4,
143
- "properties": {
144
- "days_since_original": { "$range": [1, 45] }
145
- }
146
- },
147
- {
148
- "event": "support contacted",
149
- "weight": 2,
150
- "properties": {
151
- "issue_type": ["missing_item", "wrong_order", "late_delivery", "quality_issue", "refund_request", "app_bug"]
152
- }
153
- }
154
- ],
155
- "superProps": {
156
- "platform": ["iOS", "Android", "Web"],
157
- "subscription_tier": ["Free", "QuickBite+"],
158
- "city": ["New York", "Los Angeles", "Chicago", "Houston", "Phoenix", "San Francisco", "Seattle", "Miami"]
159
- },
160
- "userProps": {
161
- "preferred_cuisine": ["American", "Italian", "Chinese", "Japanese", "Mexican", "Indian", "Thai", "Mediterranean"],
162
- "avg_order_value": { "$range": [15, 80] },
163
- "orders_per_month": { "$range": [1, 15] },
164
- "account_age_days": { "$range": [1, 365] }
165
- },
166
- "funnels": [
167
- {
168
- "sequence": ["account created", "browse restaurants", "restaurant viewed"],
169
- "isFirstFunnel": true,
170
- "conversionRate": 75,
171
- "timeToConvert": 0.5
172
- },
173
- {
174
- "sequence": ["view menu item", "add to cart", "checkout started", "order placed"],
175
- "conversionRate": 50,
176
- "timeToConvert": 1,
177
- "weight": 5
178
- },
179
- {
180
- "sequence": ["browse restaurants", "restaurant viewed", "view menu item", "favorite item"],
181
- "conversionRate": 35,
182
- "timeToConvert": 2,
183
- "weight": 3
184
- },
185
- {
186
- "sequence": ["order delivered", "order rated", "reorder initiated"],
187
- "conversionRate": 40,
188
- "timeToConvert": 24,
189
- "weight": 2
190
- }
191
- ]
192
- }