@semacode/cli 2.3.0 → 2.3.1

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 (177) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +251 -228
  3. package/dist/agentEntryPoints.js +551 -550
  4. package/dist/angular-consumer-standalone.d.ts +3 -1
  5. package/dist/angular-consumer-standalone.js +12 -8
  6. package/dist/drift.part01.d.ts +32 -2
  7. package/dist/drift.part01.js +2 -0
  8. package/dist/drift.part04.d.ts +3 -2
  9. package/dist/drift.part04.js +6 -3
  10. package/dist/drift.part05.d.ts +2 -1
  11. package/dist/drift.part05.js +4 -3
  12. package/dist/drift.part06.d.ts +2 -1
  13. package/dist/drift.part06.js +9 -5
  14. package/dist/drift.part07.d.ts +11 -10
  15. package/dist/drift.part07.js +40 -30
  16. package/dist/drift.part08.d.ts +2 -1
  17. package/dist/drift.part08.js +4 -3
  18. package/dist/drift.part11.js +71 -6
  19. package/dist/drift.part12.js +14 -1
  20. package/dist/drift.part13.d.ts +42 -7
  21. package/dist/drift.part13.js +660 -36
  22. package/dist/driftCache.d.ts +49 -0
  23. package/dist/driftCache.js +311 -0
  24. package/dist/driftCacheIncremental.d.ts +98 -0
  25. package/dist/driftCacheIncremental.js +596 -0
  26. package/dist/driftCatalogo.d.ts +91 -0
  27. package/dist/driftCatalogo.js +657 -0
  28. package/dist/driftCatalogoPersistente.d.ts +8 -0
  29. package/dist/driftCatalogoPersistente.js +77 -0
  30. package/dist/driftEscopo.d.ts +23 -0
  31. package/dist/driftEscopo.js +563 -0
  32. package/dist/driftEscopoReferencias.d.ts +4 -0
  33. package/dist/driftEscopoReferencias.js +265 -0
  34. package/dist/driftOrcamento.d.ts +12 -0
  35. package/dist/driftOrcamento.js +19 -3
  36. package/dist/execucoesExternas.js +5 -19
  37. package/dist/iaPrompts.js +310 -310
  38. package/dist/index.part01.d.ts +16 -1
  39. package/dist/index.part01.js +80 -4
  40. package/dist/index.part02.js +21 -21
  41. package/dist/index.part03.d.ts +2 -2
  42. package/dist/index.part03.js +14 -3
  43. package/dist/index.part04.d.ts +2 -2
  44. package/dist/index.part04.js +113 -101
  45. package/dist/index.part05.d.ts +1 -1
  46. package/dist/index.part05.js +99 -22
  47. package/dist/index.part06.js +3 -2
  48. package/dist/index.part07.js +24 -24
  49. package/dist/index.part08.js +1 -1
  50. package/dist/init/templates.part01.js +393 -393
  51. package/dist/init/templates.part02.js +189 -189
  52. package/dist/initTemplatesBackend.js +73 -73
  53. package/dist/initTemplatesBase.js +81 -81
  54. package/dist/initTemplatesFlutter.js +137 -137
  55. package/dist/initTemplatesRuntime.js +350 -350
  56. package/dist/initTemplatesWeb.js +309 -309
  57. package/dist/pipelineConteudo/command.js +1 -36
  58. package/dist/projeto.d.ts +1 -1
  59. package/dist/projetoCarregar.d.ts +2 -2
  60. package/dist/projetoCarregar.js +47 -24
  61. package/dist/projetoCatalogo.d.ts +7 -0
  62. package/dist/projetoCatalogo.js +125 -0
  63. package/dist/projetoTipos.d.ts +14 -5
  64. package/dist/sync/index.js +35 -35
  65. package/docs/README.md +34 -34
  66. package/docs/ai-integration.md +1 -7
  67. package/docs/ai-onboarding.md +62 -62
  68. package/docs/ai-workflow.md +4 -0
  69. package/docs/auth.md +26 -26
  70. package/docs/cli.md +79 -79
  71. package/docs/commands.md +16 -13
  72. package/docs/database.md +15 -15
  73. package/docs/deploy.md +41 -41
  74. package/docs/descoberta-capacidades.md +106 -106
  75. package/docs/documentation.md +37 -46
  76. package/docs/env.md +16 -16
  77. package/docs/frontend.md +41 -41
  78. package/docs/getting-started.md +57 -57
  79. package/docs/i18n.md +15 -15
  80. package/docs/pipeline-conteudo.md +246 -246
  81. package/docs/profiles.md +54 -54
  82. package/docs/repositories.md +43 -43
  83. package/docs/rollback.md +31 -31
  84. package/docs/security.md +32 -32
  85. package/docs/sistemas-interativos.md +373 -378
  86. package/docs/support.md +8 -8
  87. package/docs/testing.md +51 -44
  88. package/docs/vocabulary.md +29 -29
  89. package/exemplos/agendamento.sema +1 -1
  90. package/exemplos/assinatura.sema +1 -1
  91. package/exemplos/auditoria.sema +1 -1
  92. package/exemplos/autenticacao.sema +1 -1
  93. package/exemplos/author_obra_comum.sema +1 -1
  94. package/exemplos/author_tema_sensivel.sema +1 -1
  95. package/exemplos/automacao.sema +1 -1
  96. package/exemplos/cadastro_usuario.sema +1 -1
  97. package/exemplos/calculadora.sema +1 -1
  98. package/exemplos/crud_simples.sema +1 -1
  99. package/exemplos/estoque.sema +1 -1
  100. package/exemplos/exportacao.sema +1 -1
  101. package/exemplos/fila.sema +1 -1
  102. package/exemplos/integracao_externa.sema +1 -1
  103. package/exemplos/multi_tenant.sema +1 -1
  104. package/exemplos/notificacao.sema +1 -1
  105. package/exemplos/operacao_estrategia.sema +132 -132
  106. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  107. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  108. package/exemplos/operacao_estrategia_gates.sema +106 -106
  109. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  110. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  111. package/exemplos/pagamento.sema +1 -1
  112. package/exemplos/pagamento_dominio.sema +1 -1
  113. package/exemplos/pedido.sema +1 -1
  114. package/exemplos/permissao.sema +1 -1
  115. package/exemplos/persistencia_vendor_first.sema +1 -1
  116. package/exemplos/pipeline-conteudo/README.md +44 -44
  117. package/exemplos/pipeline-conteudo/alvos.json +23 -23
  118. package/exemplos/pipeline-conteudo/definicao.json +136 -136
  119. package/exemplos/profile_conversas.sema +165 -165
  120. package/exemplos/profile_game.sema +1 -1
  121. package/exemplos/profile_legal.sema +1 -1
  122. package/exemplos/profile_ops.sema +1 -1
  123. package/exemplos/profile_research.sema +1 -1
  124. package/exemplos/profile_simulation.sema +211 -211
  125. package/exemplos/profile_software.sema +1 -1
  126. package/exemplos/profile_workflow_n8n.sema +1 -1
  127. package/exemplos/relatorio.sema +1 -1
  128. package/exemplos/replica_analitica_erp.sema +1 -1
  129. package/exemplos/sistemas-interativos/README.md +100 -100
  130. package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
  131. package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
  132. package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
  133. package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
  134. package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
  135. package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
  136. package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
  137. package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
  138. package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
  139. package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
  140. package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
  141. package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
  142. package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
  143. package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
  144. package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
  145. package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
  146. package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
  147. package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
  148. package/exemplos/sistemas-interativos/game-2d.json +83 -83
  149. package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
  150. package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
  151. package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
  152. package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
  153. package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
  154. package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
  155. package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
  156. package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
  157. package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
  158. package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
  159. package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
  160. package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
  161. package/exemplos/testes_embutidos.sema +1 -1
  162. package/exemplos/tratamento_erro.sema +1 -1
  163. package/exemplos/upload_arquivo.sema +1 -1
  164. package/exemplos/webhook.sema +1 -1
  165. package/node_modules/@sema/gerador-cpp/dist/index.js +176 -176
  166. package/node_modules/@sema/gerador-cpp/package.json +1 -1
  167. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  168. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  169. package/node_modules/@sema/gerador-dotnet/dist/index.js +169 -169
  170. package/node_modules/@sema/gerador-dotnet/package.json +1 -1
  171. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  172. package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
  173. package/node_modules/@sema/gerador-php/dist/index.js +113 -113
  174. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  175. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  176. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  177. package/package.json +3 -3
@@ -1,94 +1,94 @@
1
- {
2
- "schemaVersion": "1.0",
3
- "systemId": "example.game.pixel-8-bit",
4
- "version": "1.0.0",
5
- "kind": "GAME",
6
- "spatialModel": "TWO_D",
7
- "renderMode": "VISUAL",
8
- "visualProfile": "PIXEL_8_BIT",
9
- "fidelity": "ARCADE",
10
- "controlModes": [
11
- "HUMAN"
12
- ],
13
- "timeModel": "FIXED_STEP",
14
- "determinism": "SEEDED",
15
- "capabilities": [
16
- "interactive.control.human",
17
- "interactive.determinism.seeded",
18
- "interactive.event.log",
19
- "interactive.failure.observe",
20
- "interactive.fidelity.arcade",
21
- "interactive.kind.game",
22
- "interactive.playtest.plan",
23
- "interactive.render.visual",
24
- "interactive.replay.compare",
25
- "interactive.runtime.bind",
26
- "interactive.runtime.observe",
27
- "interactive.seed.bind",
28
- "interactive.smoke.observe",
29
- "interactive.snapshot.capture",
30
- "interactive.spatial.two_d",
31
- "interactive.state.model",
32
- "interactive.time.fixed_step",
33
- "interactive.visual.pixel_8_bit",
34
- "interactive.world.model"
35
- ],
36
- "pipelines": [
37
- "interactive.prototype",
38
- "interactive.playtest",
39
- "interactive.replay"
40
- ],
41
- "adapterTargets": [
42
- "engine.pico8",
43
- "telemetry.trace.local",
44
- "validator.replay.local"
45
- ],
46
- "world": {
47
- "identity": "compact single-screen platform game",
48
- "state": {
49
- "room": 1,
50
- "score": 0
51
- },
52
- "time": {
53
- "tickRateHz": 30
54
- },
55
- "events": [
56
- "player.jump",
57
- "coin.collect",
58
- "player.hit"
59
- ],
60
- "initialConditions": {
61
- "room": 1,
62
- "lives": 3
63
- },
64
- "grid": "8 px tiles on a 128x128 canvas",
65
- "loop": "move, jump, collect, exit",
66
- "objective": "collect every coin and reach the exit",
67
- "successConditions": [
68
- "exit reached after all coins are collected"
69
- ],
70
- "failureConditions": [
71
- "all lives exhausted"
72
- ],
73
- "rules": [
74
- "integer-aligned sprite positions",
75
- "no sub-pixel rendering"
76
- ],
77
- "seed": 8,
78
- "snapshot": "room state at entry",
79
- "replay": "button transitions per fixed tick",
80
- "step": "one 30 Hz tick"
81
- },
82
- "budgets": {
83
- "paletteColors": 16,
84
- "baseResolution": "128x128",
85
- "tileSize": "8x8",
86
- "spriteSize": "8x8 and 16x16",
87
- "memoryBudgetBytes": 32768,
88
- "audioProfile": "four-channel chiptune"
89
- },
90
- "acceptance": {
91
- "pixelIntegrity": "sprites and tiles stay on the integer grid",
92
- "playability": "the full loop is completable with two buttons and a d-pad"
93
- }
94
- }
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.game.pixel-8-bit",
4
+ "version": "1.0.0",
5
+ "kind": "GAME",
6
+ "spatialModel": "TWO_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "PIXEL_8_BIT",
9
+ "fidelity": "ARCADE",
10
+ "controlModes": [
11
+ "HUMAN"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "interactive.control.human",
17
+ "interactive.determinism.seeded",
18
+ "interactive.event.log",
19
+ "interactive.failure.observe",
20
+ "interactive.fidelity.arcade",
21
+ "interactive.kind.game",
22
+ "interactive.playtest.plan",
23
+ "interactive.render.visual",
24
+ "interactive.replay.compare",
25
+ "interactive.runtime.bind",
26
+ "interactive.runtime.observe",
27
+ "interactive.seed.bind",
28
+ "interactive.smoke.observe",
29
+ "interactive.snapshot.capture",
30
+ "interactive.spatial.two_d",
31
+ "interactive.state.model",
32
+ "interactive.time.fixed_step",
33
+ "interactive.visual.pixel_8_bit",
34
+ "interactive.world.model"
35
+ ],
36
+ "pipelines": [
37
+ "interactive.prototype",
38
+ "interactive.playtest",
39
+ "interactive.replay"
40
+ ],
41
+ "adapterTargets": [
42
+ "engine.pico8",
43
+ "telemetry.trace.local",
44
+ "validator.replay.local"
45
+ ],
46
+ "world": {
47
+ "identity": "compact single-screen platform game",
48
+ "state": {
49
+ "room": 1,
50
+ "score": 0
51
+ },
52
+ "time": {
53
+ "tickRateHz": 30
54
+ },
55
+ "events": [
56
+ "player.jump",
57
+ "coin.collect",
58
+ "player.hit"
59
+ ],
60
+ "initialConditions": {
61
+ "room": 1,
62
+ "lives": 3
63
+ },
64
+ "grid": "8 px tiles on a 128x128 canvas",
65
+ "loop": "move, jump, collect, exit",
66
+ "objective": "collect every coin and reach the exit",
67
+ "successConditions": [
68
+ "exit reached after all coins are collected"
69
+ ],
70
+ "failureConditions": [
71
+ "all lives exhausted"
72
+ ],
73
+ "rules": [
74
+ "integer-aligned sprite positions",
75
+ "no sub-pixel rendering"
76
+ ],
77
+ "seed": 8,
78
+ "snapshot": "room state at entry",
79
+ "replay": "button transitions per fixed tick",
80
+ "step": "one 30 Hz tick"
81
+ },
82
+ "budgets": {
83
+ "paletteColors": 16,
84
+ "baseResolution": "128x128",
85
+ "tileSize": "8x8",
86
+ "spriteSize": "8x8 and 16x16",
87
+ "memoryBudgetBytes": 32768,
88
+ "audioProfile": "four-channel chiptune"
89
+ },
90
+ "acceptance": {
91
+ "pixelIntegrity": "sprites and tiles stay on the integer grid",
92
+ "playability": "the full loop is completable with two buttons and a d-pad"
93
+ }
94
+ }
@@ -1,80 +1,80 @@
1
- {
2
- "schemaVersion": "1.0",
3
- "systemId": "example.game.xr.human",
4
- "version": "1.0.0",
5
- "kind": "GAME",
6
- "spatialModel": "THREE_D",
7
- "renderMode": "XR",
8
- "visualProfile": "REALISTIC",
9
- "fidelity": "STYLIZED",
10
- "controlModes": [
11
- "HUMAN"
12
- ],
13
- "timeModel": "REAL_TIME",
14
- "determinism": "BEST_EFFORT",
15
- "capabilities": [
16
- "interactive.control.human",
17
- "interactive.determinism.best_effort",
18
- "interactive.failure.observe",
19
- "interactive.fidelity.stylized",
20
- "interactive.kind.game",
21
- "interactive.playtest.plan",
22
- "interactive.render.xr",
23
- "interactive.replay.compare",
24
- "interactive.runtime.bind",
25
- "interactive.runtime.observe",
26
- "interactive.smoke.observe",
27
- "interactive.spatial.three_d",
28
- "interactive.state.model",
29
- "interactive.time.real_time",
30
- "interactive.visual.realistic",
31
- "interactive.world.model"
32
- ],
33
- "pipelines": [
34
- "interactive.prototype",
35
- "interactive.playtest"
36
- ],
37
- "adapterTargets": [
38
- "engine.godot",
39
- "telemetry.trace.local",
40
- "validator.replay.local"
41
- ],
42
- "world": {
43
- "identity": "room-scale cooperative repair game",
44
- "state": {
45
- "station": "offline",
46
- "completedRepairs": 0
47
- },
48
- "time": {
49
- "tickRateHz": 90
50
- },
51
- "events": [
52
- "tool.grab",
53
- "component.install",
54
- "station.restart"
55
- ],
56
- "initialConditions": {
57
- "playerPose": "calibrated-origin",
58
- "station": "offline"
59
- },
60
- "units": "metres",
61
- "scale": "1 unit = 1 metre",
62
- "coordinateSystem": "right-handed Y-up room space",
63
- "loop": "inspect, grab, repair, test",
64
- "objective": "restart the station",
65
- "successConditions": [
66
- "station reports operational"
67
- ],
68
- "failureConditions": [
69
- "session safety boundary is breached"
70
- ],
71
- "rules": [
72
- "interactions require reachable controller poses",
73
- "locomotion respects the declared comfort mode"
74
- ]
75
- },
76
- "acceptance": {
77
- "comfort": "turning and locomotion respect the configured comfort policy",
78
- "interaction": "all required repair actions are reachable from a calibrated room origin"
79
- }
80
- }
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.game.xr.human",
4
+ "version": "1.0.0",
5
+ "kind": "GAME",
6
+ "spatialModel": "THREE_D",
7
+ "renderMode": "XR",
8
+ "visualProfile": "REALISTIC",
9
+ "fidelity": "STYLIZED",
10
+ "controlModes": [
11
+ "HUMAN"
12
+ ],
13
+ "timeModel": "REAL_TIME",
14
+ "determinism": "BEST_EFFORT",
15
+ "capabilities": [
16
+ "interactive.control.human",
17
+ "interactive.determinism.best_effort",
18
+ "interactive.failure.observe",
19
+ "interactive.fidelity.stylized",
20
+ "interactive.kind.game",
21
+ "interactive.playtest.plan",
22
+ "interactive.render.xr",
23
+ "interactive.replay.compare",
24
+ "interactive.runtime.bind",
25
+ "interactive.runtime.observe",
26
+ "interactive.smoke.observe",
27
+ "interactive.spatial.three_d",
28
+ "interactive.state.model",
29
+ "interactive.time.real_time",
30
+ "interactive.visual.realistic",
31
+ "interactive.world.model"
32
+ ],
33
+ "pipelines": [
34
+ "interactive.prototype",
35
+ "interactive.playtest"
36
+ ],
37
+ "adapterTargets": [
38
+ "engine.godot",
39
+ "telemetry.trace.local",
40
+ "validator.replay.local"
41
+ ],
42
+ "world": {
43
+ "identity": "room-scale cooperative repair game",
44
+ "state": {
45
+ "station": "offline",
46
+ "completedRepairs": 0
47
+ },
48
+ "time": {
49
+ "tickRateHz": 90
50
+ },
51
+ "events": [
52
+ "tool.grab",
53
+ "component.install",
54
+ "station.restart"
55
+ ],
56
+ "initialConditions": {
57
+ "playerPose": "calibrated-origin",
58
+ "station": "offline"
59
+ },
60
+ "units": "metres",
61
+ "scale": "1 unit = 1 metre",
62
+ "coordinateSystem": "right-handed Y-up room space",
63
+ "loop": "inspect, grab, repair, test",
64
+ "objective": "restart the station",
65
+ "successConditions": [
66
+ "station reports operational"
67
+ ],
68
+ "failureConditions": [
69
+ "session safety boundary is breached"
70
+ ],
71
+ "rules": [
72
+ "interactions require reachable controller poses",
73
+ "locomotion respects the declared comfort mode"
74
+ ]
75
+ },
76
+ "acceptance": {
77
+ "comfort": "turning and locomotion respect the configured comfort policy",
78
+ "interaction": "all required repair actions are reachable from a calibrated room origin"
79
+ }
80
+ }
@@ -1,108 +1,108 @@
1
- {
2
- "schemaVersion": "1.0",
3
- "systemId": "example.hybrid.2-5d.seeded",
4
- "version": "1.0.0",
5
- "kind": "HYBRID",
6
- "spatialModel": "TWO_POINT_FIVE_D",
7
- "renderMode": "VISUAL",
8
- "visualProfile": "STYLIZED",
9
- "fidelity": "SYSTEMIC",
10
- "controlModes": [
11
- "HYBRID"
12
- ],
13
- "timeModel": "FIXED_STEP",
14
- "determinism": "SEEDED",
15
- "capabilities": [
16
- "interactive.control.hybrid",
17
- "interactive.determinism.seeded",
18
- "interactive.event.log",
19
- "interactive.failure.observe",
20
- "interactive.fidelity.systemic",
21
- "interactive.kind.hybrid",
22
- "interactive.playtest.plan",
23
- "interactive.render.visual",
24
- "interactive.replay.compare",
25
- "interactive.runtime.bind",
26
- "interactive.runtime.observe",
27
- "interactive.seed.bind",
28
- "interactive.smoke.observe",
29
- "interactive.snapshot.capture",
30
- "interactive.spatial.2_5_d",
31
- "interactive.state.model",
32
- "interactive.time.fixed_step",
33
- "interactive.visual.stylized",
34
- "interactive.world.model",
35
- "simulation.model",
36
- "simulation.outputs.observe",
37
- "simulation.scenario.define"
38
- ],
39
- "pipelines": [
40
- "interactive.prototype",
41
- "interactive.playtest",
42
- "simulation.scenario",
43
- "interactive.replay"
44
- ],
45
- "adapterTargets": [
46
- "engine.godot",
47
- "telemetry.trace.local",
48
- "validator.replay.local"
49
- ],
50
- "world": {
51
- "identity": "2.5D emergency-routing training sandbox",
52
- "state": {
53
- "district": "coastal-a",
54
- "evacuatedAgents": 0
55
- },
56
- "time": {
57
- "fixedStepSeconds": 0.25
58
- },
59
- "events": [
60
- "route.open",
61
- "hazard.spread",
62
- "agent.evacuate"
63
- ],
64
- "initialConditions": {
65
- "hazardOrigin": "sector-4",
66
- "activeRoutes": 3
67
- },
68
- "coordinateSystem": "isometric grid with metric depth",
69
- "grid": "1 metre navigation cells",
70
- "loop": "inspect, route, advance, review",
71
- "objective": "evacuate the declared population before the horizon",
72
- "successConditions": [
73
- "all reachable agents evacuated"
74
- ],
75
- "failureConditions": [
76
- "simulation horizon reached with reachable agents remaining"
77
- ],
78
- "rules": [
79
- "human route choices and scripted agents share one state model",
80
- "render depth does not change navigation costs"
81
- ],
82
- "model": "discrete agent movement over a weighted evacuation graph",
83
- "assumptions": [
84
- "agents select only currently open routes"
85
- ],
86
- "boundaryConditions": {
87
- "horizonSeconds": 900,
88
- "maximumAgents": 500
89
- },
90
- "outputs": [
91
- "evacuationTimeSeconds",
92
- "routeUtilisation",
93
- "agentsRemaining"
94
- ],
95
- "validation": {
96
- "method": "compare replay outputs against declared evacuation invariants",
97
- "invariants": ["agent counts are conserved", "route costs remain non-negative"]
98
- },
99
- "seed": 2026071904,
100
- "snapshot": "graph, agents, hazard, and human decisions",
101
- "replay": "ordered route decisions and simulation events",
102
- "step": "fixed 0.25 second update"
103
- },
104
- "acceptance": {
105
- "hybridBoundary": "human actions and simulated agents remain distinguishable in the event log",
106
- "projection": "2.5D rendering preserves the underlying metric grid"
107
- }
108
- }
1
+ {
2
+ "schemaVersion": "1.0",
3
+ "systemId": "example.hybrid.2-5d.seeded",
4
+ "version": "1.0.0",
5
+ "kind": "HYBRID",
6
+ "spatialModel": "TWO_POINT_FIVE_D",
7
+ "renderMode": "VISUAL",
8
+ "visualProfile": "STYLIZED",
9
+ "fidelity": "SYSTEMIC",
10
+ "controlModes": [
11
+ "HYBRID"
12
+ ],
13
+ "timeModel": "FIXED_STEP",
14
+ "determinism": "SEEDED",
15
+ "capabilities": [
16
+ "interactive.control.hybrid",
17
+ "interactive.determinism.seeded",
18
+ "interactive.event.log",
19
+ "interactive.failure.observe",
20
+ "interactive.fidelity.systemic",
21
+ "interactive.kind.hybrid",
22
+ "interactive.playtest.plan",
23
+ "interactive.render.visual",
24
+ "interactive.replay.compare",
25
+ "interactive.runtime.bind",
26
+ "interactive.runtime.observe",
27
+ "interactive.seed.bind",
28
+ "interactive.smoke.observe",
29
+ "interactive.snapshot.capture",
30
+ "interactive.spatial.2_5_d",
31
+ "interactive.state.model",
32
+ "interactive.time.fixed_step",
33
+ "interactive.visual.stylized",
34
+ "interactive.world.model",
35
+ "simulation.model",
36
+ "simulation.outputs.observe",
37
+ "simulation.scenario.define"
38
+ ],
39
+ "pipelines": [
40
+ "interactive.prototype",
41
+ "interactive.playtest",
42
+ "simulation.scenario",
43
+ "interactive.replay"
44
+ ],
45
+ "adapterTargets": [
46
+ "engine.godot",
47
+ "telemetry.trace.local",
48
+ "validator.replay.local"
49
+ ],
50
+ "world": {
51
+ "identity": "2.5D emergency-routing training sandbox",
52
+ "state": {
53
+ "district": "coastal-a",
54
+ "evacuatedAgents": 0
55
+ },
56
+ "time": {
57
+ "fixedStepSeconds": 0.25
58
+ },
59
+ "events": [
60
+ "route.open",
61
+ "hazard.spread",
62
+ "agent.evacuate"
63
+ ],
64
+ "initialConditions": {
65
+ "hazardOrigin": "sector-4",
66
+ "activeRoutes": 3
67
+ },
68
+ "coordinateSystem": "isometric grid with metric depth",
69
+ "grid": "1 metre navigation cells",
70
+ "loop": "inspect, route, advance, review",
71
+ "objective": "evacuate the declared population before the horizon",
72
+ "successConditions": [
73
+ "all reachable agents evacuated"
74
+ ],
75
+ "failureConditions": [
76
+ "simulation horizon reached with reachable agents remaining"
77
+ ],
78
+ "rules": [
79
+ "human route choices and scripted agents share one state model",
80
+ "render depth does not change navigation costs"
81
+ ],
82
+ "model": "discrete agent movement over a weighted evacuation graph",
83
+ "assumptions": [
84
+ "agents select only currently open routes"
85
+ ],
86
+ "boundaryConditions": {
87
+ "horizonSeconds": 900,
88
+ "maximumAgents": 500
89
+ },
90
+ "outputs": [
91
+ "evacuationTimeSeconds",
92
+ "routeUtilisation",
93
+ "agentsRemaining"
94
+ ],
95
+ "validation": {
96
+ "method": "compare replay outputs against declared evacuation invariants",
97
+ "invariants": ["agent counts are conserved", "route costs remain non-negative"]
98
+ },
99
+ "seed": 2026071904,
100
+ "snapshot": "graph, agents, hazard, and human decisions",
101
+ "replay": "ordered route decisions and simulation events",
102
+ "step": "fixed 0.25 second update"
103
+ },
104
+ "acceptance": {
105
+ "hybridBoundary": "human actions and simulated agents remain distinguishable in the event log",
106
+ "projection": "2.5D rendering preserves the underlying metric grid"
107
+ }
108
+ }