@almadar/std 16.204.0 → 16.205.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/std",
3
- "version": "16.204.0",
3
+ "version": "16.205.0",
4
4
  "description": "Standard library operators for Almadar (math, string, array, etc.)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -59,7 +59,7 @@
59
59
  "access": "public"
60
60
  },
61
61
  "dependencies": {
62
- "@almadar/core": "^10.83.0"
62
+ "@almadar/core": "^10.84.0"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@almadar/eslint-plugin": "^2.17.0",
@@ -1,69 +0,0 @@
1
- app std-game-design-sheet "1.0.0"
2
- "Headless game-design metadata authority: every game or level in the std library MUST compose this atom and fill its design sheet before declaring mechanics. The sheet forces the author to state the core loop, challenge, goals, feedback, agency, mechanics, dynamics, engagement drivers, and rewards. The atom owns no rendering and no rules; it is the single source of truth for intent metadata. Domain-specific extensions (e.g., math target or grade level for an educational game) live in the consuming package, not here. Future game atoms (platformer-body, objective-flow, fx-narrative, pickup, gate-lock, etc.) correspond to fields here, and level organisms bind those atoms together while declaring how each field is realized."
3
-
4
- orbital GameDesignSheetOrbital {
5
- type GameDesign = {
6
- coreLoop : string!
7
- challenge : string!
8
- goals : [string]!
9
- feedback : string!
10
- agency : string!
11
- mechanics : [string]!
12
- dynamics : [string]!
13
- engagement : [string]!
14
- rewards : [string]!
15
- }
16
-
17
- entity GameDesignState [runtime, shared] {
18
- id : string!
19
- design : GameDesign = {}
20
- declared : boolean = false
21
- }
22
-
23
- trait GameDesignSheet -> @rebindable GameDesignState [lifecycle] {
24
- initial: active
25
-
26
- state active {
27
- INIT -> active
28
- (set @entity.design @config.design)
29
- (set @entity.declared true)
30
- (emit DESIGN_DECLARED { design: @entity.design })
31
-
32
- RESTART -> active
33
- (set @entity.design @config.design)
34
- (set @entity.declared true)
35
- (emit DESIGN_DECLARED { design: @entity.design })
36
- }
37
-
38
- emits {
39
- DESIGN_DECLARED -> external {
40
- design : GameDesign!
41
- }
42
- @description "The compiled game-design sheet is emitted once on INIT and again on RESTART so organism-level authorities, analytics, or tutorial overlays can react to it."
43
- @tier "domain"
44
- }
45
-
46
- listens {
47
- RESTART { id : string }
48
- }
49
-
50
- config {
51
- design : GameDesign = {
52
- coreLoop: "",
53
- challenge: "",
54
- goals: [],
55
- feedback: "",
56
- agency: "",
57
- mechanics: [],
58
- dynamics: [],
59
- engagement: [],
60
- rewards: []
61
- }
62
- @label "Design Sheet"
63
- @description "Required game-design metadata. All string/array fields must be non-empty for a finished level; empty defaults fail validation until the author fills them in."
64
- @tier "domain"
65
- }
66
- }
67
-
68
- page "/game-design-sheet" as GameDesignSheetPage -> GameDesignSheet
69
- }
@@ -1,527 +0,0 @@
1
- {
2
- "description": "Headless game-design metadata authority: every game or level in the std library MUST compose this atom and fill its design sheet before declaring mechanics. The sheet forces the author to state the core loop, challenge, goals, feedback, agency, mechanics, dynamics, engagement drivers, and rewards. The atom owns no rendering and no rules; it is the single source of truth for intent metadata. Domain-specific extensions (e.g., math target or grade level for an educational game) live in the consuming package, not here. Future game atoms (platformer-body, objective-flow, fx-narrative, pickup, gate-lock, etc.) correspond to fields here, and level organisms bind those atoms together while declaring how each field is realized.",
3
- "ledger": {
4
- "entries": {
5
- "ent_01M1NKGE11AR2J7GEQPKDJRWMX": {
6
- "bakedName": "GameDesignState",
7
- "curName": "GameDesignState",
8
- "id": "ent_01M1NKGE11AR2J7GEQPKDJRWMX",
9
- "kind": "entity",
10
- "owner": "workspace",
11
- "renames": []
12
- },
13
- "evt_01M1NKGE119C8NKXKGJH8X4TMR": {
14
- "bakedName": "DESIGN_DECLARED",
15
- "curName": "DESIGN_DECLARED",
16
- "id": "evt_01M1NKGE119C8NKXKGJH8X4TMR",
17
- "kind": "event",
18
- "owner": "workspace",
19
- "parent": "trt_01M1NKGE111XC08V7VSSVYSJB4",
20
- "renames": []
21
- },
22
- "evt_01M1NKGE11CDYSFMFB4V6P8Y7P": {
23
- "bakedName": "RESTART",
24
- "curName": "RESTART",
25
- "id": "evt_01M1NKGE11CDYSFMFB4V6P8Y7P",
26
- "kind": "event",
27
- "owner": "workspace",
28
- "parent": "trt_01M1NKGE111XC08V7VSSVYSJB4",
29
- "renames": []
30
- },
31
- "evt_01M1NKGE11QM4V8HX481NCVKQ0": {
32
- "bakedName": "INIT",
33
- "curName": "INIT",
34
- "id": "evt_01M1NKGE11QM4V8HX481NCVKQ0",
35
- "kind": "event",
36
- "owner": "workspace",
37
- "parent": "trt_01M1NKGE111XC08V7VSSVYSJB4",
38
- "renames": []
39
- },
40
- "orb_01M1NKGE11H9R1X869A8C6MF1G": {
41
- "bakedName": "GameDesignSheetOrbital",
42
- "curName": "GameDesignSheetOrbital",
43
- "id": "orb_01M1NKGE11H9R1X869A8C6MF1G",
44
- "kind": "orbital",
45
- "owner": "workspace",
46
- "renames": []
47
- },
48
- "pag_01M1NKGE11QN9ZKQENH9WCNHWT": {
49
- "bakedName": "GameDesignSheetPage",
50
- "curName": "GameDesignSheetPage",
51
- "id": "pag_01M1NKGE11QN9ZKQENH9WCNHWT",
52
- "kind": "page",
53
- "owner": "workspace",
54
- "renames": []
55
- },
56
- "trt_01M1NKGE111XC08V7VSSVYSJB4": {
57
- "bakedName": "GameDesignSheet",
58
- "curName": "GameDesignSheet",
59
- "id": "trt_01M1NKGE111XC08V7VSSVYSJB4",
60
- "kind": "trait",
61
- "owner": "workspace",
62
- "renames": []
63
- }
64
- },
65
- "schemaVersion": 1
66
- },
67
- "name": "std-game-design-sheet",
68
- "orbitals": [
69
- {
70
- "entity": {
71
- "fields": [
72
- {
73
- "name": "id",
74
- "required": true,
75
- "type": "string"
76
- },
77
- {
78
- "default": {},
79
- "name": "design",
80
- "properties": {
81
- "agency": {
82
- "name": "agency",
83
- "required": true,
84
- "type": "string"
85
- },
86
- "challenge": {
87
- "name": "challenge",
88
- "required": true,
89
- "type": "string"
90
- },
91
- "coreLoop": {
92
- "name": "coreLoop",
93
- "required": true,
94
- "type": "string"
95
- },
96
- "dynamics": {
97
- "items": {
98
- "type": "string"
99
- },
100
- "name": "dynamics",
101
- "required": true,
102
- "type": "array"
103
- },
104
- "engagement": {
105
- "items": {
106
- "type": "string"
107
- },
108
- "name": "engagement",
109
- "required": true,
110
- "type": "array"
111
- },
112
- "feedback": {
113
- "name": "feedback",
114
- "required": true,
115
- "type": "string"
116
- },
117
- "goals": {
118
- "items": {
119
- "type": "string"
120
- },
121
- "name": "goals",
122
- "required": true,
123
- "type": "array"
124
- },
125
- "mechanics": {
126
- "items": {
127
- "type": "string"
128
- },
129
- "name": "mechanics",
130
- "required": true,
131
- "type": "array"
132
- },
133
- "rewards": {
134
- "items": {
135
- "type": "string"
136
- },
137
- "name": "rewards",
138
- "required": true,
139
- "type": "array"
140
- }
141
- },
142
- "type": "object"
143
- },
144
- {
145
- "default": false,
146
- "name": "declared",
147
- "type": "boolean"
148
- }
149
- ],
150
- "id": "ent_01M1NKGE11AR2J7GEQPKDJRWMX",
151
- "name": "GameDesignState",
152
- "persistence": "runtime",
153
- "shared": true
154
- },
155
- "id": "orb_01M1NKGE11H9R1X869A8C6MF1G",
156
- "name": "GameDesignSheetOrbital",
157
- "pages": [
158
- {
159
- "id": "pag_01M1NKGE11QN9ZKQENH9WCNHWT",
160
- "name": "GameDesignSheetPage",
161
- "path": "/game-design-sheet",
162
- "traits": [
163
- {
164
- "ref": "GameDesignSheet",
165
- "refId": "trt_01M1NKGE111XC08V7VSSVYSJB4"
166
- }
167
- ]
168
- }
169
- ],
170
- "traits": [
171
- {
172
- "category": "lifecycle",
173
- "config": {
174
- "design": {
175
- "default": {
176
- "agency": "",
177
- "challenge": "",
178
- "coreLoop": "",
179
- "dynamics": [],
180
- "engagement": [],
181
- "feedback": "",
182
- "goals": [],
183
- "mechanics": [],
184
- "rewards": []
185
- },
186
- "description": "Required game-design metadata. All string/array fields must be non-empty for a finished level; empty defaults fail validation until the author fills them in.",
187
- "label": "Design Sheet",
188
- "properties": {
189
- "agency": {
190
- "name": "agency",
191
- "required": true,
192
- "type": "string"
193
- },
194
- "challenge": {
195
- "name": "challenge",
196
- "required": true,
197
- "type": "string"
198
- },
199
- "coreLoop": {
200
- "name": "coreLoop",
201
- "required": true,
202
- "type": "string"
203
- },
204
- "dynamics": {
205
- "items": {
206
- "type": "string"
207
- },
208
- "name": "dynamics",
209
- "required": true,
210
- "type": "array"
211
- },
212
- "engagement": {
213
- "items": {
214
- "type": "string"
215
- },
216
- "name": "engagement",
217
- "required": true,
218
- "type": "array"
219
- },
220
- "feedback": {
221
- "name": "feedback",
222
- "required": true,
223
- "type": "string"
224
- },
225
- "goals": {
226
- "items": {
227
- "type": "string"
228
- },
229
- "name": "goals",
230
- "required": true,
231
- "type": "array"
232
- },
233
- "mechanics": {
234
- "items": {
235
- "type": "string"
236
- },
237
- "name": "mechanics",
238
- "required": true,
239
- "type": "array"
240
- },
241
- "rewards": {
242
- "items": {
243
- "type": "string"
244
- },
245
- "name": "rewards",
246
- "required": true,
247
- "type": "array"
248
- }
249
- },
250
- "tier": "domain",
251
- "type": "GameDesign"
252
- }
253
- },
254
- "emits": [
255
- {
256
- "description": "The compiled game-design sheet is emitted once on INIT and again on RESTART so organism-level authorities, analytics, or tutorial overlays can react to it.",
257
- "event": "DESIGN_DECLARED",
258
- "eventId": "evt_01M1NKGE119C8NKXKGJH8X4TMR",
259
- "payloadSchema": [
260
- {
261
- "name": "design",
262
- "properties": [
263
- {
264
- "name": "coreLoop",
265
- "required": true,
266
- "type": "string"
267
- },
268
- {
269
- "name": "challenge",
270
- "required": true,
271
- "type": "string"
272
- },
273
- {
274
- "name": "goals",
275
- "required": true,
276
- "type": "[string]"
277
- },
278
- {
279
- "name": "feedback",
280
- "required": true,
281
- "type": "string"
282
- },
283
- {
284
- "name": "agency",
285
- "required": true,
286
- "type": "string"
287
- },
288
- {
289
- "name": "mechanics",
290
- "required": true,
291
- "type": "[string]"
292
- },
293
- {
294
- "name": "dynamics",
295
- "required": true,
296
- "type": "[string]"
297
- },
298
- {
299
- "name": "engagement",
300
- "required": true,
301
- "type": "[string]"
302
- },
303
- {
304
- "name": "rewards",
305
- "required": true,
306
- "type": "[string]"
307
- }
308
- ],
309
- "required": true,
310
- "type": "object"
311
- }
312
- ],
313
- "scope": "external",
314
- "tier": "domain"
315
- }
316
- ],
317
- "entityContract": {
318
- "provides": [
319
- "declared",
320
- "design"
321
- ],
322
- "requires": []
323
- },
324
- "entityRebindable": true,
325
- "entityRefIds": {
326
- "GameDesignState": "ent_01M1NKGE11AR2J7GEQPKDJRWMX"
327
- },
328
- "id": "trt_01M1NKGE111XC08V7VSSVYSJB4",
329
- "linkedEntity": "GameDesignState",
330
- "linkedEntityId": "ent_01M1NKGE11AR2J7GEQPKDJRWMX",
331
- "name": "GameDesignSheet",
332
- "scope": "instance",
333
- "stateMachine": {
334
- "events": [
335
- {
336
- "id": "evt_01M1NKGE11QM4V8HX481NCVKQ0",
337
- "key": "INIT",
338
- "name": "Initialize"
339
- },
340
- {
341
- "id": "evt_01M1NKGE11CDYSFMFB4V6P8Y7P",
342
- "key": "RESTART",
343
- "name": "Restart",
344
- "payloadSchema": [
345
- {
346
- "name": "id",
347
- "type": "string"
348
- }
349
- ]
350
- },
351
- {
352
- "description": "The compiled game-design sheet is emitted once on INIT and again on RESTART so organism-level authorities, analytics, or tutorial overlays can react to it.",
353
- "id": "evt_01M1NKGE119C8NKXKGJH8X4TMR",
354
- "key": "DESIGN_DECLARED",
355
- "name": "Design Declared",
356
- "payloadSchema": [
357
- {
358
- "name": "design",
359
- "properties": [
360
- {
361
- "name": "coreLoop",
362
- "required": true,
363
- "type": "string"
364
- },
365
- {
366
- "name": "challenge",
367
- "required": true,
368
- "type": "string"
369
- },
370
- {
371
- "name": "goals",
372
- "required": true,
373
- "type": "[string]"
374
- },
375
- {
376
- "name": "feedback",
377
- "required": true,
378
- "type": "string"
379
- },
380
- {
381
- "name": "agency",
382
- "required": true,
383
- "type": "string"
384
- },
385
- {
386
- "name": "mechanics",
387
- "required": true,
388
- "type": "[string]"
389
- },
390
- {
391
- "name": "dynamics",
392
- "required": true,
393
- "type": "[string]"
394
- },
395
- {
396
- "name": "engagement",
397
- "required": true,
398
- "type": "[string]"
399
- },
400
- {
401
- "name": "rewards",
402
- "required": true,
403
- "type": "[string]"
404
- }
405
- ],
406
- "required": true,
407
- "type": "object"
408
- }
409
- ],
410
- "tier": "domain"
411
- }
412
- ],
413
- "states": [
414
- {
415
- "isInitial": true,
416
- "name": "active"
417
- }
418
- ],
419
- "transitions": [
420
- {
421
- "effects": [
422
- [
423
- "set",
424
- "@entity.design",
425
- "@config.design"
426
- ],
427
- [
428
- "set",
429
- "@entity.declared",
430
- true
431
- ],
432
- [
433
- "emit",
434
- "DESIGN_DECLARED",
435
- {
436
- "design": "@entity.design"
437
- }
438
- ]
439
- ],
440
- "event": "INIT",
441
- "eventId": "evt_01M1NKGE11QM4V8HX481NCVKQ0",
442
- "from": "active",
443
- "to": "active"
444
- },
445
- {
446
- "effects": [
447
- [
448
- "set",
449
- "@entity.design",
450
- "@config.design"
451
- ],
452
- [
453
- "set",
454
- "@entity.declared",
455
- true
456
- ],
457
- [
458
- "emit",
459
- "DESIGN_DECLARED",
460
- {
461
- "design": "@entity.design"
462
- }
463
- ]
464
- ],
465
- "event": "RESTART",
466
- "eventId": "evt_01M1NKGE11CDYSFMFB4V6P8Y7P",
467
- "from": "active",
468
- "to": "active"
469
- }
470
- ]
471
- }
472
- }
473
- ],
474
- "types": {
475
- "GameDesign": [
476
- {
477
- "name": "coreLoop",
478
- "required": true,
479
- "type": "string"
480
- },
481
- {
482
- "name": "challenge",
483
- "required": true,
484
- "type": "string"
485
- },
486
- {
487
- "name": "goals",
488
- "required": true,
489
- "type": "[string]"
490
- },
491
- {
492
- "name": "feedback",
493
- "required": true,
494
- "type": "string"
495
- },
496
- {
497
- "name": "agency",
498
- "required": true,
499
- "type": "string"
500
- },
501
- {
502
- "name": "mechanics",
503
- "required": true,
504
- "type": "[string]"
505
- },
506
- {
507
- "name": "dynamics",
508
- "required": true,
509
- "type": "[string]"
510
- },
511
- {
512
- "name": "engagement",
513
- "required": true,
514
- "type": "[string]"
515
- },
516
- {
517
- "name": "rewards",
518
- "required": true,
519
- "type": "[string]"
520
- }
521
- ]
522
- }
523
- }
524
- ],
525
- "schemaVersion": 1,
526
- "version": "1.0.0"
527
- }