@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,362 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "event": "foo",
5
+ "weight": 10
6
+ },
7
+ {
8
+ "event": "bar",
9
+ "weight": 9
10
+ },
11
+ {
12
+ "event": "baz",
13
+ "weight": 8
14
+ },
15
+ {
16
+ "event": "qux",
17
+ "weight": 7
18
+ },
19
+ {
20
+ "event": "garply",
21
+ "weight": 6
22
+ },
23
+ {
24
+ "event": "durtle",
25
+ "weight": 5
26
+ },
27
+ {
28
+ "event": "linny",
29
+ "weight": 4
30
+ },
31
+ {
32
+ "event": "fonk",
33
+ "weight": 3
34
+ },
35
+ {
36
+ "event": "crumn",
37
+ "weight": 2
38
+ },
39
+ {
40
+ "event": "yak"
41
+ }
42
+ ],
43
+ "superProps": {
44
+ "string": [
45
+ "red",
46
+ "orange",
47
+ "yellow",
48
+ "green",
49
+ "blue",
50
+ "indigo",
51
+ "violet"
52
+ ],
53
+ "number": {
54
+ "$type": "number"
55
+ },
56
+ "boolean": [
57
+ true,
58
+ false
59
+ ],
60
+ "date": [
61
+ "2024-09-18T21:48:28.173Z",
62
+ "2024-12-09T03:17:46.661Z",
63
+ "2024-02-26T07:52:14.943Z",
64
+ "2024-04-22T08:35:17.647Z",
65
+ "2024-11-25T17:03:58.061Z",
66
+ "2024-01-14T21:46:58.982Z",
67
+ "2024-06-20T12:47:25.687Z",
68
+ "2024-08-13T22:18:08.665Z",
69
+ "2024-08-09T07:47:18.321Z",
70
+ "2024-06-21T19:04:43.432Z",
71
+ "2024-03-09T00:18:37.705Z",
72
+ "2024-08-02T09:23:41.699Z",
73
+ "2024-11-26T13:25:08.673Z",
74
+ "2024-05-23T11:51:34.238Z",
75
+ "2024-10-24T20:14:05.106Z",
76
+ "2024-10-01T18:52:32.463Z",
77
+ "2024-10-15T19:22:40.675Z",
78
+ "2024-06-13T21:29:11.962Z",
79
+ "2024-08-29T12:02:48.632Z",
80
+ "2024-12-22T12:11:40.809Z",
81
+ "2024-01-03T03:39:19.446Z",
82
+ "2024-06-28T10:05:43.908Z",
83
+ "2024-12-01T18:49:00.447Z",
84
+ "2024-12-30T05:44:23.418Z",
85
+ "2024-03-14T22:38:40.833Z",
86
+ "2024-12-28T06:45:31.946Z",
87
+ "2024-07-20T21:40:19.498Z",
88
+ "2024-12-26T06:44:41.982Z",
89
+ "2024-10-28T13:45:35.409Z",
90
+ "2024-02-28T00:11:54.916Z",
91
+ "2024-07-08T10:01:57.834Z",
92
+ "2024-02-23T08:00:59.386Z",
93
+ "2024-08-20T05:23:33.024Z",
94
+ "2024-02-10T20:52:46.564Z",
95
+ "2024-08-24T21:32:15.202Z",
96
+ "2024-06-17T03:51:35.142Z",
97
+ "2024-04-09T13:13:45.218Z",
98
+ "2024-07-26T16:31:51.091Z",
99
+ "2024-05-26T04:06:33.013Z",
100
+ "2024-11-05T17:15:37.412Z",
101
+ "2024-10-20T17:01:38.205Z",
102
+ "2024-01-08T05:09:18.692Z",
103
+ "2024-08-24T13:52:14.774Z",
104
+ "2024-06-26T13:47:07.276Z",
105
+ "2024-06-19T15:05:53.246Z",
106
+ "2024-05-01T04:06:52.028Z",
107
+ "2024-05-26T22:45:59.626Z",
108
+ "2024-04-17T20:50:58.460Z",
109
+ "2024-07-28T04:32:04.578Z",
110
+ "2024-01-29T05:31:48.744Z",
111
+ "2024-08-06T18:47:29.190Z",
112
+ "2024-04-03T23:12:20.415Z",
113
+ "2024-09-13T08:47:35.938Z",
114
+ "2024-07-27T15:12:15.145Z",
115
+ "2024-10-24T00:39:21.835Z",
116
+ "2024-10-08T16:50:36.591Z",
117
+ "2024-02-27T15:53:19.204Z",
118
+ "2024-04-21T08:24:05.883Z",
119
+ "2024-03-08T10:07:46.720Z",
120
+ "2024-01-10T08:36:19.554Z",
121
+ "2024-02-17T12:56:00.562Z",
122
+ "2024-10-03T07:54:46.486Z",
123
+ "2024-05-29T10:18:36.289Z",
124
+ "2024-05-06T23:27:07.145Z",
125
+ "2024-05-27T08:41:47.787Z",
126
+ "2024-09-16T12:22:09.573Z",
127
+ "2024-05-03T00:31:06.036Z",
128
+ "2024-11-24T19:38:43.380Z",
129
+ "2024-06-03T04:01:56.328Z",
130
+ "2024-05-04T02:25:25.455Z",
131
+ "2024-12-19T18:35:25.052Z",
132
+ "2024-05-07T21:54:28.113Z",
133
+ "2024-11-24T09:58:08.766Z",
134
+ "2024-03-17T02:46:20.903Z",
135
+ "2024-09-04T09:20:24.930Z",
136
+ "2024-02-04T10:23:33.624Z",
137
+ "2024-01-26T02:42:06.668Z",
138
+ "2024-08-11T02:26:21.969Z",
139
+ "2024-07-11T13:34:51.283Z",
140
+ "2024-12-20T00:09:10.080Z",
141
+ "2024-05-28T00:20:07.079Z",
142
+ "2024-01-13T14:54:03.339Z",
143
+ "2024-08-10T17:18:12.759Z",
144
+ "2024-10-06T15:05:11.437Z",
145
+ "2024-11-18T03:53:12.932Z",
146
+ "2024-02-19T18:06:13.680Z",
147
+ "2024-08-03T11:48:00.207Z",
148
+ "2024-11-22T15:19:47.316Z",
149
+ "2024-06-30T19:56:49.636Z",
150
+ "2024-12-03T00:25:23.926Z",
151
+ "2024-07-30T15:27:18.198Z",
152
+ "2024-09-07T01:40:58.245Z",
153
+ "2024-05-16T05:24:14.727Z",
154
+ "2024-11-14T03:46:49.323Z",
155
+ "2024-02-16T09:18:23.473Z",
156
+ "2024-10-19T14:07:11.462Z",
157
+ "2024-02-09T08:52:04.735Z",
158
+ "2024-06-06T09:41:11.810Z",
159
+ "2024-05-07T23:14:05.114Z",
160
+ "2024-06-03T06:52:21.652Z"
161
+ ],
162
+ "temperature": [
163
+ "warm"
164
+ ]
165
+ },
166
+ "userProps": {
167
+ "luckyNumber": {
168
+ "$type": "number"
169
+ },
170
+ "spiritAnimal": [
171
+ "duck",
172
+ "dog",
173
+ "otter",
174
+ "penguin",
175
+ "cat",
176
+ "elephant",
177
+ "lion",
178
+ "cheetah",
179
+ "giraffe",
180
+ "zebra",
181
+ "rhino",
182
+ "hippo",
183
+ "whale",
184
+ "dolphin",
185
+ "shark",
186
+ "octopus",
187
+ "squid",
188
+ "jellyfish",
189
+ "starfish",
190
+ "seahorse",
191
+ "crab",
192
+ "lobster",
193
+ "shrimp",
194
+ "clam",
195
+ "snail",
196
+ "slug",
197
+ "butterfly",
198
+ "moth",
199
+ "bee",
200
+ "wasp",
201
+ "ant",
202
+ "beetle",
203
+ "ladybug",
204
+ "caterpillar",
205
+ "centipede",
206
+ "millipede",
207
+ "scorpion",
208
+ "spider",
209
+ "tarantula",
210
+ "tick",
211
+ "mite",
212
+ "mosquito",
213
+ "fly",
214
+ "dragonfly",
215
+ "damselfly",
216
+ "grasshopper",
217
+ "cricket",
218
+ "locust",
219
+ "mantis",
220
+ "cockroach",
221
+ "termite",
222
+ "praying mantis",
223
+ "walking stick",
224
+ "stick bug",
225
+ "leaf insect",
226
+ "lacewing",
227
+ "aphid",
228
+ "cicada",
229
+ "thrips",
230
+ "psyllid",
231
+ "scale insect",
232
+ "whitefly",
233
+ "mealybug",
234
+ "planthopper",
235
+ "leafhopper",
236
+ "treehopper",
237
+ "flea",
238
+ "louse",
239
+ "bedbug",
240
+ "flea beetle",
241
+ "weevil",
242
+ "longhorn beetle",
243
+ "leaf beetle",
244
+ "tiger beetle",
245
+ "ground beetle",
246
+ "lady beetle",
247
+ "firefly",
248
+ "click beetle",
249
+ "rove beetle",
250
+ "scarab beetle",
251
+ "dung beetle",
252
+ "stag beetle",
253
+ "rhinoceros beetle",
254
+ "hercules beetle",
255
+ "goliath beetle",
256
+ "jewel beetle",
257
+ "tortoise beetle"
258
+ ],
259
+ "created": [
260
+ "2024-09-18T21:48:28.173Z",
261
+ "2024-12-09T03:17:46.661Z",
262
+ "2024-02-26T07:52:14.943Z",
263
+ "2024-04-22T08:35:17.647Z",
264
+ "2024-11-25T17:03:58.061Z",
265
+ "2024-01-14T21:46:58.982Z",
266
+ "2024-06-20T12:47:25.687Z",
267
+ "2024-08-13T22:18:08.665Z",
268
+ "2024-08-09T07:47:18.321Z",
269
+ "2024-06-21T19:04:43.432Z",
270
+ "2024-03-09T00:18:37.705Z",
271
+ "2024-08-02T09:23:41.699Z",
272
+ "2024-11-26T13:25:08.673Z",
273
+ "2024-05-23T11:51:34.238Z",
274
+ "2024-10-24T20:14:05.106Z",
275
+ "2024-10-01T18:52:32.463Z",
276
+ "2024-10-15T19:22:40.675Z",
277
+ "2024-06-13T21:29:11.962Z",
278
+ "2024-08-29T12:02:48.632Z",
279
+ "2024-12-22T12:11:40.809Z",
280
+ "2024-01-03T03:39:19.446Z",
281
+ "2024-06-28T10:05:43.908Z",
282
+ "2024-12-01T18:49:00.447Z",
283
+ "2024-12-30T05:44:23.418Z",
284
+ "2024-03-14T22:38:40.833Z",
285
+ "2024-12-28T06:45:31.946Z",
286
+ "2024-07-20T21:40:19.498Z",
287
+ "2024-12-26T06:44:41.982Z",
288
+ "2024-10-28T13:45:35.409Z",
289
+ "2024-02-28T00:11:54.916Z",
290
+ "2024-07-08T10:01:57.834Z",
291
+ "2024-02-23T08:00:59.386Z",
292
+ "2024-08-20T05:23:33.024Z",
293
+ "2024-02-10T20:52:46.564Z",
294
+ "2024-08-24T21:32:15.202Z",
295
+ "2024-06-17T03:51:35.142Z",
296
+ "2024-04-09T13:13:45.218Z",
297
+ "2024-07-26T16:31:51.091Z",
298
+ "2024-05-26T04:06:33.013Z",
299
+ "2024-11-05T17:15:37.412Z",
300
+ "2024-10-20T17:01:38.205Z",
301
+ "2024-01-08T05:09:18.692Z",
302
+ "2024-08-24T13:52:14.774Z",
303
+ "2024-06-26T13:47:07.276Z",
304
+ "2024-06-19T15:05:53.246Z",
305
+ "2024-05-01T04:06:52.028Z",
306
+ "2024-05-26T22:45:59.626Z",
307
+ "2024-04-17T20:50:58.460Z",
308
+ "2024-07-28T04:32:04.578Z",
309
+ "2024-01-29T05:31:48.744Z",
310
+ "2024-08-06T18:47:29.190Z",
311
+ "2024-04-03T23:12:20.415Z",
312
+ "2024-09-13T08:47:35.938Z",
313
+ "2024-07-27T15:12:15.145Z",
314
+ "2024-10-24T00:39:21.835Z",
315
+ "2024-10-08T16:50:36.591Z",
316
+ "2024-02-27T15:53:19.204Z",
317
+ "2024-04-21T08:24:05.883Z",
318
+ "2024-03-08T10:07:46.720Z",
319
+ "2024-01-10T08:36:19.554Z",
320
+ "2024-02-17T12:56:00.562Z",
321
+ "2024-10-03T07:54:46.486Z",
322
+ "2024-05-29T10:18:36.289Z",
323
+ "2024-05-06T23:27:07.145Z",
324
+ "2024-05-27T08:41:47.787Z",
325
+ "2024-09-16T12:22:09.573Z",
326
+ "2024-05-03T00:31:06.036Z",
327
+ "2024-11-24T19:38:43.380Z",
328
+ "2024-06-03T04:01:56.328Z",
329
+ "2024-05-04T02:25:25.455Z",
330
+ "2024-12-19T18:35:25.052Z",
331
+ "2024-05-07T21:54:28.113Z",
332
+ "2024-11-24T09:58:08.766Z",
333
+ "2024-03-17T02:46:20.903Z",
334
+ "2024-09-04T09:20:24.930Z",
335
+ "2024-02-04T10:23:33.624Z",
336
+ "2024-01-26T02:42:06.668Z",
337
+ "2024-08-11T02:26:21.969Z",
338
+ "2024-07-11T13:34:51.283Z",
339
+ "2024-12-20T00:09:10.080Z",
340
+ "2024-05-28T00:20:07.079Z",
341
+ "2024-01-13T14:54:03.339Z",
342
+ "2024-08-10T17:18:12.759Z",
343
+ "2024-10-06T15:05:11.437Z",
344
+ "2024-11-18T03:53:12.932Z",
345
+ "2024-02-19T18:06:13.680Z",
346
+ "2024-08-03T11:48:00.207Z",
347
+ "2024-11-22T15:19:47.316Z",
348
+ "2024-06-30T19:56:49.636Z",
349
+ "2024-12-03T00:25:23.926Z",
350
+ "2024-07-30T15:27:18.198Z",
351
+ "2024-09-07T01:40:58.245Z",
352
+ "2024-05-16T05:24:14.727Z",
353
+ "2024-11-14T03:46:49.323Z",
354
+ "2024-02-16T09:18:23.473Z",
355
+ "2024-10-19T14:07:11.462Z",
356
+ "2024-02-09T08:52:04.735Z",
357
+ "2024-06-06T09:41:11.810Z",
358
+ "2024-05-07T23:14:05.114Z",
359
+ "2024-06-03T06:52:21.652Z"
360
+ ]
361
+ }
362
+ }
@@ -46,6 +46,7 @@ function integer(min = 1, max = 100) {
46
46
  return Math.floor(Math.random() * (max - min + 1)) + min;
47
47
  }
48
48
 
49
+ /** @typedef {import("../../types").Dungeon} Config */
49
50
 
50
51
  const dates = [
51
52
  "2024-09-18T21:48:28.173Z",
@@ -157,7 +158,7 @@ const eventPerUser = 1_000;
157
158
  const numUsers = Math.floor(numEvents / eventPerUser);
158
159
  const seed = Math.random().toString()
159
160
 
160
- /** @type {import('../types').Dungeon} */
161
+ /** @type {import('../../types').Dungeon} */
161
162
  const config = {
162
163
  token: "",
163
164
  seed: seed,
@@ -168,7 +169,6 @@ const config = {
168
169
  region: "US",
169
170
  hasAnonIds: false, //if true, anonymousIds are created for each user
170
171
  hasSessionIds: false, //if true, hasSessionIds are created for each user
171
- batchSize: 2_500_000,
172
172
  hasAdSpend: false,
173
173
  hasAvatar: false,
174
174
  hasBrowser: false,
@@ -238,7 +238,7 @@ const config = {
238
238
  number: integer,
239
239
  boolean: [true, false],
240
240
  date: dates,
241
-
241
+ temperature: ["warm"],
242
242
  },
243
243
  userProps: {
244
244
  luckyNumber: integer,
@@ -0,0 +1,241 @@
1
+ {
2
+ "events": [
3
+ {
4
+ "event": "feature used",
5
+ "weight": 8,
6
+ "properties": {
7
+ "feature": [
8
+ "dashboard",
9
+ "reports",
10
+ "settings",
11
+ "api",
12
+ "integrations"
13
+ ]
14
+ }
15
+ },
16
+ {
17
+ "event": "subscription change",
18
+ "weight": 2,
19
+ "properties": {
20
+ "plan": [
21
+ "free",
22
+ "starter",
23
+ "business",
24
+ "enterprise"
25
+ ],
26
+ "action": [
27
+ "upgrade",
28
+ "downgrade",
29
+ "renew"
30
+ ]
31
+ }
32
+ },
33
+ {
34
+ "event": "support ticket",
35
+ "weight": 3,
36
+ "properties": {
37
+ "priority": [
38
+ "low",
39
+ "medium",
40
+ "high"
41
+ ],
42
+ "category": [
43
+ "billing",
44
+ "technical",
45
+ "onboarding",
46
+ "feature request"
47
+ ]
48
+ }
49
+ },
50
+ {
51
+ "event": "task completed",
52
+ "weight": 7,
53
+ "properties": {
54
+ "type": [
55
+ "bug",
56
+ "feature",
57
+ "chore",
58
+ "docs"
59
+ ],
60
+ "points": {
61
+ "$range": [
62
+ 1,
63
+ 12
64
+ ]
65
+ }
66
+ }
67
+ },
68
+ {
69
+ "event": "meeting scheduled",
70
+ "weight": 4,
71
+ "properties": {
72
+ "duration": [
73
+ 15,
74
+ 30,
75
+ 45,
76
+ 60
77
+ ],
78
+ "type": [
79
+ "standup",
80
+ "planning",
81
+ "retro",
82
+ "1:1",
83
+ "all-hands"
84
+ ]
85
+ }
86
+ },
87
+ {
88
+ "event": "code committed",
89
+ "weight": 6,
90
+ "properties": {
91
+ "language": [
92
+ "javascript",
93
+ "python",
94
+ "go",
95
+ "rust",
96
+ "java"
97
+ ],
98
+ "linesChanged": {
99
+ "$range": [
100
+ 97,
101
+ 393
102
+ ]
103
+ }
104
+ }
105
+ },
106
+ {
107
+ "event": "deployment run",
108
+ "weight": 3,
109
+ "properties": {
110
+ "environment": [
111
+ "dev",
112
+ "staging",
113
+ "production"
114
+ ],
115
+ "status": [
116
+ "success",
117
+ "failure"
118
+ ],
119
+ "durationSec": {
120
+ "$range": [
121
+ 65,
122
+ 243
123
+ ]
124
+ }
125
+ }
126
+ },
127
+ {
128
+ "event": "login",
129
+ "weight": 5,
130
+ "isFirstEvent": true,
131
+ "properties": {
132
+ "method": [
133
+ "password",
134
+ "sso",
135
+ "oauth"
136
+ ]
137
+ }
138
+ }
139
+ ],
140
+ "userProps": {
141
+ "role": [
142
+ "engineer",
143
+ "designer",
144
+ "pm",
145
+ "manager",
146
+ "exec"
147
+ ]
148
+ },
149
+ "groupKeys": [
150
+ {
151
+ "key": "company_id",
152
+ "count": 50,
153
+ "affectsEvents": [
154
+ "feature used",
155
+ "subscription change",
156
+ "support ticket"
157
+ ]
158
+ },
159
+ {
160
+ "key": "team_id",
161
+ "count": 200,
162
+ "affectsEvents": [
163
+ "feature used",
164
+ "task completed",
165
+ "meeting scheduled"
166
+ ]
167
+ },
168
+ {
169
+ "key": "project_id",
170
+ "count": 500,
171
+ "affectsEvents": [
172
+ "task completed",
173
+ "code committed",
174
+ "deployment run"
175
+ ]
176
+ }
177
+ ],
178
+ "groupProps": {
179
+ "company_id": {
180
+ "name": {
181
+ "$type": "string"
182
+ },
183
+ "industry": [
184
+ "technology",
185
+ "finance",
186
+ "healthcare",
187
+ "retail",
188
+ "education",
189
+ "manufacturing"
190
+ ],
191
+ "plan": [
192
+ "free",
193
+ "starter",
194
+ "business",
195
+ "enterprise"
196
+ ],
197
+ "employee_count": {
198
+ "$range": [
199
+ 964,
200
+ 3784
201
+ ]
202
+ }
203
+ },
204
+ "team_id": {
205
+ "name": {
206
+ "$type": "string"
207
+ },
208
+ "department": [
209
+ "engineering",
210
+ "design",
211
+ "product",
212
+ "marketing",
213
+ "sales",
214
+ "support"
215
+ ],
216
+ "size": {
217
+ "$range": [
218
+ 3,
219
+ 20
220
+ ]
221
+ }
222
+ },
223
+ "project_id": {
224
+ "name": {
225
+ "$type": "string"
226
+ },
227
+ "status": [
228
+ "active",
229
+ "paused",
230
+ "completed",
231
+ "archived"
232
+ ],
233
+ "priority": [
234
+ "low",
235
+ "medium",
236
+ "high",
237
+ "critical"
238
+ ]
239
+ }
240
+ }
241
+ }