@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/behaviors/lolo/ui/game/organisms/std-platformer-puzzle.lolo +302 -0
- package/behaviors/registry/ui/game/organisms/std-platformer-puzzle.orb +2063 -0
- package/dist/behaviors/exports-reader.js +3743 -2552
- package/dist/behaviors/functions/index.d.ts +102 -75
- package/dist/behaviors/functions/index.js +4158 -2968
- package/dist/behaviors/index.d.ts +1 -1
- package/dist/behaviors/index.js +3744 -2553
- package/dist/behaviors/query.js +3743 -2552
- package/dist/behaviors-embeddings.hash.json +3 -3
- package/dist/behaviors-embeddings.json +5 -5
- package/dist/behaviors-registry.json +1791 -427
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3744 -2553
- package/dist/knob-embeddings.hash.json +3 -3
- package/dist/knob-embeddings.json +1 -1
- package/dist/registry/factory-signatures.json +1 -1
- package/package.json +2 -2
- package/behaviors/lolo/ui/game/atoms/std-game-design-sheet.lolo +0 -69
- package/behaviors/registry/ui/game/atoms/std-game-design-sheet.orb +0 -527
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/std",
|
|
3
|
-
"version": "16.
|
|
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.
|
|
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
|
-
}
|