@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,381 +1,376 @@
1
- # AI-native Interactive Systems
2
-
3
- Sema Interactive is the declarative control plane for games, simulations, and
4
- hybrid interactive systems. The same core covers 3D, 2.5D, 2D, text, retro
5
- 8/16-bit presentation, XR, and headless execution.
6
-
7
- It does not embed a game engine or silently control an editor. Sema validates
8
- definitions, calculates required capabilities, selects compatible external
9
- adapter descriptors, expands pipelines into evidence-bearing stages, and
10
- derives non-authoritative local results. An explicitly integrated external
11
- runner must perform any engine, editor, plug-in, build, verifier, or worker
12
- operation.
13
-
14
- The public CLI is a read-only control plane. It does **not** detect, probe,
15
- launch, install, or control Unreal, Unity, Godot, Blender, PICO-8, TIC-80,
16
- LÖVE, a browser runtime, a custom engine, a plug-in, or a distributed worker.
17
- Catalog presence means only that a descriptor exists; it is not runtime
18
- availability evidence.
19
-
20
- ## The dimensions are independent
21
-
22
- An interactive definition separates concerns that are often incorrectly mixed:
23
-
24
- | Axis | Examples |
25
- | --- | --- |
26
- | Kind | `GAME`, `SIMULATION`, `HYBRID` |
27
- | Spatial model | `NON_SPATIAL`, `TWO_D`, `TWO_POINT_FIVE_D`, `THREE_D` |
28
- | Render mode | `HEADLESS`, `TEXT`, `VISUAL`, `XR` |
29
- | Visual profile | `NONE`, `PIXEL_8_BIT`, `PIXEL_16_BIT`, `RASTER`, `VECTOR`, `STYLIZED`, `REALISTIC` |
30
- | Fidelity | `ARCADE`, `STYLIZED`, `SYSTEMIC`, `REALISTIC`, `CALIBRATED` |
31
- | Control | human, scripted, AI, hybrid, autonomous, or uncontrolled/emergent |
32
- | Time | fixed step, variable step, turn based, event driven, or accelerated |
33
- | Determinism | strict, seeded, best effort, or stochastic |
34
-
35
- `PIXEL_8_BIT` and `PIXEL_16_BIT` are visual/technical profiles, not spatial
36
- dimensions or lesser product classes. A 16-bit economic simulation and a 3D
37
- flight simulation use the same world/state/time/evidence core with different
38
- budgets and adapters.
39
-
40
- ## Core commands
41
-
42
- ```bash
43
- sema interativo capabilities --json
44
- sema interativo schema --json
45
- sema interativo pipelines --json
46
- sema interativo adapters --spatial-model TWO_D --render-mode VISUAL --json
47
- sema interativo validar exemplos/sistemas-interativos/game-pixel-16-bit.json --json
48
- sema interativo planejar exemplos/sistemas-interativos/game-pixel-16-bit.json --json
49
- sema interativo validar-evidencias <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json
50
- sema interativo status <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json
51
- sema interativo validar-protocolo <adapter-run.json> --json
52
- ```
53
-
54
- Every command above is local and declarative. Responses report
55
- `executed: false` and `workspaceMutated: false`. The CLI does not open an
56
- engine, editor, browser runtime, or custom simulator.
57
-
58
- `--evidencias-arquivo` is accepted as an alias for `--bundle-arquivo`. When
59
- `--plano-arquivo` is omitted, the CLI recomputes the deterministic plan and
60
- still rejects any bundle whose definition or plan digest does not match.
61
-
62
- `schema` is the stable, read-only machine contract for definition generation.
63
- It exposes required fields, supported enum values, cross-field constraints,
64
- the capability matrix, and canonical example paths. Its advanced command map
65
- links every positional/option surface to input and output schemas; each data
66
- schema exposes required top-level fields and official fixtures. Each subcommand
67
- has an explicit argument allowlist: unknown flags, duplicate semantic flags,
68
- missing values, and invalid enum values fail closed instead of producing an
69
- empty successful result.
70
-
71
- ## Advanced read-only commands
72
-
73
- The advanced command surface exposes the same pure validators and planners to
74
- AI agents. File-based commands read JSON, every command returns structured JSON,
75
- and engine, editor, process, plug-in, and worker inspection remains an external
76
- integration responsibility.
77
-
78
- Experience IR:
79
-
80
- ```bash
81
- sema interativo validar-ir <experience-ir.json> --json
82
- sema interativo indexar-ir <experience-ir.json> --json
83
- sema interativo consultar-ir <experience-ir.json> --semantic-id <id> --json
84
- sema interativo chunk-ir <experience-ir.json> --semantic-id <id> [--raso] --json
85
- sema interativo descrever-ir --json
86
- ```
87
-
88
- Operational snapshots, provenance, jobs, acceptance, and multimodal evidence:
89
-
90
- ```bash
91
- sema interativo validar-engine-snapshot <snapshot.json> --json
92
- sema interativo diff-engine-snapshots <before.json> <after.json> --json
93
- sema interativo validar-asset-provenance <provenance.json> --json
94
- sema interativo validar-editor-state <editor-state.json> --json
95
- sema interativo planejar-jobs <jobs.json> --json
96
- sema interativo validar-acceptance <acceptance-lock.json> --json
97
- sema interativo operar-acceptance <acceptance-lock.json> --operation <VALIDATE|EVALUATE|INVALIDATE> --context-file <context.json> --json
98
- sema interativo validar-multimodal <evidence.json> --json
99
- ```
100
-
101
- Time, autonomy, portability, and distributed work:
102
-
103
- ```bash
104
- sema interativo validar-temporal <temporal-contract.json> --json
105
- sema interativo validar-evidencia-temporal <temporal-contract.json> --bundle-arquivo <temporal-evidence.json> --json
106
- sema interativo validar-autonomia <repair-cycle.json> --json
107
- sema interativo validar-playtest-fuzz <playtest-fuzz.json> --json
108
- sema interativo validar-multiplayer <authority-model.json> --json
109
- sema interativo analisar-portabilidade <portability-plan.json> --json
110
- sema interativo validar-workers <distributed-jobs.json> --json
111
- ```
112
-
113
- These commands validate descriptions and derive plans, diffs, indexes, queries,
114
- chunks, eligibility, or assignments. They do not perform the described work.
115
-
116
- `sema interativo schema --json` publishes distinct input and output shapes for
117
- all 20 extension commands. The advertised multimodal input includes claim and
118
- producer/verifier bindings; autonomy includes cycle and acceptance-lock fields;
119
- and `jobOrchestrationPlan` exposes `requestDigest`, `planDigest`, and an ordered
120
- `queue` whose entries are the declared job assignments. Result shapes are
121
- checked against the official fixtures, and every command publishes
122
- `outputTargets` path segments from the payload root, so an agent never has to
123
- reuse an input shape or guess where a validator's output lives.
124
-
125
- ## Bound control runs
126
-
127
- `validar-control-run` is the fail-closed bridge from a planned pipeline to one
128
- specific advanced validator invocation. It binds a strict manifest to the
129
- definition digest, recomputed canonical plan, selected pipeline descriptor,
130
- validation contract, schema-declared input digests, evidence, producer and
131
- verifier identity, and the exact validator result. The CLI reruns the selected
132
- pure validator and rejects a result, contract, input, evidence, or pipeline
133
- borrowed from another run.
134
-
135
- ```bash
136
- sema interativo validar-control-run <control-run.json> \
137
- --definition-arquivo <definition.json> \
138
- --plano-arquivo <plan.json> \
139
- --contrato-arquivo <validation-contract.json> \
140
- --entrada-arquivo <input.json> \
141
- [--entrada-auxiliar-arquivo <supporting-input.json>] \
142
- --evidencia-arquivo <evidence.json> \
143
- --resultado-arquivo <result.json> \
144
- --json
145
- ```
146
-
147
- This proves deterministic local binding only. A valid control run still returns
148
- `completed: false`, `authoritative: false`, and
149
- `awaitingExternalAttestation: true`; it does not prove that an engine, editor,
150
- worker, verifier, or external adapter actually ran.
151
-
152
- ## Experience IR
153
-
154
- Experience IR is the engine-neutral semantic substrate below the advanced
155
- pipelines. Version `sema.experience-ir/v1` models 20 kinds of project, world,
156
- scene, entity, component, transform, camera, light, material, texture, audio,
157
- physics, constraint, animation, VFX, timeline, input, save, network, and build
158
- objects. Stable semantic IDs and explicit references make the graph queryable
159
- without relying on engine-specific object paths.
160
-
161
- The v1 kind set remains unchanged. Eight engine-neutral concepts use optional,
162
- typed semantic roles in their natural containers, so existing v1 documents
163
- remain valid while newer documents can expose the concepts explicitly:
164
-
165
- | Semantic role | Typed v1 representation |
166
- | --- | --- |
167
- | `LEVEL` | `SCENE.semanticRole` |
168
- | `PIVOT` | `TRANSFORM.semanticRole` |
169
- | `COLLIDER` | `PHYSICS.colliders[]` |
170
- | `EMITTER` | `VFX.emitters[]` |
171
- | `TRACK` | `TIMELINE.tracks[].semanticRole` |
172
- | `CLIP` | `TIMELINE.tracks[].clips[]` |
173
- | `EVENT` | `TIMELINE.tracks[].events[]` |
174
- | `GAME_STATE` | `SAVE.semanticRole` |
175
-
176
- `descrever-ir` publishes this mapping as
177
- `sema.experience-ir.semantic-roles/v1`. Index and chunk entries expose their
178
- canonical `semanticRoles`, while node `kind` remains one of the original 20.
179
- Typed clips participate in reference validation and dependency closure.
180
-
181
- The IR declares units and coordinate systems, records asset provenance, and
182
- uses content-addressed digests for deterministic indexing and chunking. JSON is
183
- the native canonical serialization. CBOR is an explicitly external codec path;
184
- the CLI does not pretend to encode it. Indexing, lookup, and dependency-aware
185
- chunks are in-memory read-only operations. They do not import assets, convert a
186
- project, materialize a scene, or execute a build.
187
-
188
- Validation also rejects sensitive values under neutral keys, including private
189
- keys, Bearer credentials, and common `sk`, `ghp`, or `github_pat` token forms,
190
- as well as credential-bearing URI queries such as `access_token`, `api_key`,
191
- `signature`, or `X-Amz-*`, without echoing the value or caller-controlled key
192
- path. Entity and transform
193
- parent graphs must be acyclic. Network nodes apply cross-field policy:
194
- `OFFLINE` means `NONE`, no replicated IDs, and tick zero; `CLIENT_SERVER`
195
- requires `SERVER`; `PEER_TO_PEER` accepts `OWNER` or `DISTRIBUTED`; and
196
- `LOCKSTEP` requires `DISTRIBUTED`. Every online mode requires declared
197
- replication and a positive integer tick rate.
198
-
199
- ## P0, P1, and P2 coverage
200
-
201
- The advanced surface is grouped by operational responsibility, not rendering
202
- style:
203
-
204
- | Priority | Covered responsibilities |
205
- | --- | --- |
206
- | P0 — represent and observe | Experience IR; semantic engine snapshots and diffs; asset origin, license, hashes, transforms, and derivatives; editor-state descriptors; multimodal evidence descriptors; job budgets, locks, heartbeats, checkpoints, resume tokens, and recovery; artifact/time-bound acceptance locks. |
207
- | P1 — validate behavior over time | 4D phases, tracks, clips, and invariants; shots and camera visibility; collision, attachment, and separation relations; flicker, ghosting, popping, exposure, and jitter QA; materialization, clean-install, launch, and smoke-playtest requirements; target hardware budgets. |
208
- | P2 — diagnose, scale, and migrate | `diagnose -> propose -> simulate -> prove` repair cycles with safe rollback; bounded bots, fuzzing, and save/load recovery; explicit multiplayer authority and reconnect rules; versioned engine migration and cross-engine portability with declared losses; distributed worker DAGs with capabilities, leases, budgets, and checkpoints. |
209
-
210
- All three groups apply to 3D, 2.5D, 2D, 8-bit, 16-bit, text, XR, and headless
211
- games or simulations. A visual profile changes constraints and evidence needs;
212
- it does not switch to a weaker governance model.
213
-
214
- ## Canonical pipelines
215
-
216
- The canonical catalog exposes **35 unique pipelines** and **28 unique external
217
- adapter descriptors**. Pipelines are reusable goals rather than one workflow
218
- per rendering style.
219
-
220
- Core pipelines:
221
-
222
- - `interactive.prototype`
223
- - `interactive.playtest`
224
- - `interactive.package`
225
- - `interactive.release`
226
- - `interactive.replay`
227
- - `interactive.calibrate`
228
- - `interactive.safety`
229
- - `game.balance`
230
- - `game.progression`
231
- - `game.multiplayer`
232
- - `simulation.scenario`
233
- - `simulation.batch_run`
234
- - `simulation.calibrate`
235
- - `simulation.validate`
236
- - `simulation.safety`
237
-
238
- P0/P1/P2 pipelines:
239
-
240
- - `interactive.experience_ir`
241
- - `interactive.observe`
242
- - `interactive.asset_provenance`
243
- - `interactive.editor_state`
244
- - `interactive.evidence_capture`
245
- - `interactive.job_recovery`
246
- - `interactive.acceptance_lock`
247
- - `interactive.temporal_validate`
248
- - `interactive.shot_validate`
249
- - `interactive.physics_validate`
250
- - `interactive.temporal_qa`
251
- - `interactive.clean_install_smoke`
252
- - `interactive.hardware_budget`
253
- - `interactive.autonomous_repair`
254
- - `interactive.bot_playtest`
255
- - `interactive.state_fuzz`
256
- - `interactive.multiplayer_authority`
257
- - `interactive.engine_migration`
258
- - `interactive.portability`
259
- - `interactive.distributed_jobs`
260
-
261
- Spatial model, render mode, and visual profile influence capabilities, budgets,
262
- evidence, and adapter compatibility. They do not decide the workflow goal.
263
- `THREE_D + HEADLESS` is therefore valid, while `XR` requires `THREE_D`.
264
-
265
- ## Adapter boundary
266
-
267
- Adapter descriptors represent runtime, editor, asset, build, telemetry,
268
- observation, IR, autonomy, portability, or distributed-job capabilities. They
269
- describe compatibility; they do not prove that an engine, editor, plug-in, or
270
- worker is installed, reachable, or running.
271
-
272
- The protocol model uses a read-only observation prefix:
273
-
274
- ```text
275
- DETECT -> PROBE -> SNAPSHOT -> PLAN
276
- ```
277
-
278
- Those names describe phases that an external adapter must implement; the local
279
- CLI does not perform `DETECT` or `PROBE`. Read-only adapters continue with
280
- `VALIDATE -> EVIDENCE`. Mutating adapters add `APPLY` and must support
281
- `ROLLBACK`:
282
-
283
- ```text
284
- DETECT -> PROBE -> SNAPSHOT -> PLAN -> APPLY -> VALIDATE -> EVIDENCE
285
- \-> ROLLBACK on failure
286
- ```
287
-
288
- Stable semantic target IDs bind every phase. A failed external mutation without
289
- rollback evidence is a blocking result.
290
-
291
- The descriptor catalog includes general targets for Unreal, Unity, Godot,
292
- Blender, web canvas, LÖVE, PICO-8, TIC-80, headless runtimes, simulation
293
- runners, validators, telemetry, assets, builds, operational observers, IR,
294
- autonomy, portability, and distributed jobs. These are compatibility
295
- descriptors, not bundled integrations, probes, detections, or installation
296
- claims.
297
-
298
- Planning is provider-aware. `adapterTargets` is an explicit composition, not a
299
- decorative preference: every expanded stage capability must be supplied by at
300
- least one selected compatible descriptor. An empty or partial selection
301
- produces a blocked plan with deterministic candidate and
302
- recommended-composition output. A telemetry descriptor cannot stand in for an
303
- executor, and a generic headless descriptor cannot claim packaging capabilities
304
- it does not declare.
305
-
306
- ## Evidence and operational truth
307
-
308
- Pipeline stages declare exact evidence types. Examples include runtime boot,
309
- first input, loop completion, failure state, deterministic replay, calibration,
310
- tolerance comparison, package creation, packaged launch, smoke execution, and
311
- rollback observation.
312
-
313
- Compilation does not prove playability. Opening an editor does not prove a
314
- simulation is valid. An editor playtest does not prove a packaged build. A
315
- runner saying “success” does not replace observed evidence.
316
-
317
- The portable evidence bundle in v1 is explicitly non-authoritative. It
318
- validates binding, digests, stage coverage, stable IDs, non-empty observation
319
- data, and the producing adapter ID/version against the selected provider for
320
- each stage. High-assurance environments must additionally provide signed
321
- envelopes, quorum, anti-replay state, and externally retained checkpoints
322
- through an appropriate trust/ledger layer. Sema does not label a local JSON file
323
- as a strong trust boundary.
324
-
325
- When all local structural checks and supplied observation records pass, status
326
- is `STRUCTURALLY_COMPLETE`. This is **not authoritative completion**. It means
327
- only that local structural coverage is complete; it deliberately keeps
328
- `completed: false`, `authoritative: false`, and
329
- `awaitingExternalAttestation: true`. It does not prove that an engine ran, an
330
- editor was inspected, a plug-in existed, a worker accepted a job, a package
331
- launched, or an external observer attested the result.
332
-
333
- ## Semantic budget split plan
334
-
335
- The current operational facade remains compatible, but three governed artifacts
336
- have crossed the planning threshold: `operations.ts` has 1,112 lines,
337
- `sistemas_interativos_operacao.sema` has 304 lines, and the installed-package
338
- smoke `scripts/testar-pacote-cli-publico.mjs` has 1,009 lines. Before any of
339
- them reaches its blocking limit, split by responsibility as follows:
340
-
341
- - move engine snapshots, semantic diffs, asset provenance, and editor-state
342
- observation into `engineObservation.ts`;
343
- - move queues, locks, budgets, leases, checkpoints, and recovery planning into
344
- `jobOrchestration.ts`;
345
- - move acceptance locks, invalidation, and multimodal claim evidence into
346
- `acceptanceEvidence.ts`;
347
- - keep `operations.ts` as the stable re-export facade while callers migrate;
1
+ # AI-native Interactive Systems
2
+
3
+ Sema Interactive is the declarative control plane for games, simulations, and
4
+ hybrid interactive systems. The same core covers 3D, 2.5D, 2D, text, retro
5
+ 8/16-bit presentation, XR, and headless execution.
6
+
7
+ It does not embed a game engine or silently control an editor. Sema validates
8
+ definitions, calculates required capabilities, selects compatible external
9
+ adapter descriptors, expands pipelines into evidence-bearing stages, and
10
+ derives non-authoritative local results. An explicitly integrated external
11
+ runner must perform any engine, editor, plug-in, build, verifier, or worker
12
+ operation.
13
+
14
+ The public CLI is a read-only control plane. It does **not** detect, probe,
15
+ launch, install, or control Unreal, Unity, Godot, Blender, PICO-8, TIC-80,
16
+ LÖVE, a browser runtime, a custom engine, a plug-in, or a distributed worker.
17
+ Catalog presence means only that a descriptor exists; it is not runtime
18
+ availability evidence.
19
+
20
+ ## The dimensions are independent
21
+
22
+ An interactive definition separates concerns that are often incorrectly mixed:
23
+
24
+ | Axis | Examples |
25
+ | --- | --- |
26
+ | Kind | `GAME`, `SIMULATION`, `HYBRID` |
27
+ | Spatial model | `NON_SPATIAL`, `TWO_D`, `TWO_POINT_FIVE_D`, `THREE_D` |
28
+ | Render mode | `HEADLESS`, `TEXT`, `VISUAL`, `XR` |
29
+ | Visual profile | `NONE`, `PIXEL_8_BIT`, `PIXEL_16_BIT`, `RASTER`, `VECTOR`, `STYLIZED`, `REALISTIC` |
30
+ | Fidelity | `ARCADE`, `STYLIZED`, `SYSTEMIC`, `REALISTIC`, `CALIBRATED` |
31
+ | Control | human, scripted, AI, hybrid, autonomous, or uncontrolled/emergent |
32
+ | Time | fixed step, variable step, turn based, event driven, or accelerated |
33
+ | Determinism | strict, seeded, best effort, or stochastic |
34
+
35
+ `PIXEL_8_BIT` and `PIXEL_16_BIT` are visual/technical profiles, not spatial
36
+ dimensions or lesser product classes. A 16-bit economic simulation and a 3D
37
+ flight simulation use the same world/state/time/evidence core with different
38
+ budgets and adapters.
39
+
40
+ ## Core commands
41
+
42
+ ```bash
43
+ sema interativo capabilities --json
44
+ sema interativo schema --json
45
+ sema interativo pipelines --json
46
+ sema interativo adapters --spatial-model TWO_D --render-mode VISUAL --json
47
+ sema interativo validar exemplos/sistemas-interativos/game-pixel-16-bit.json --json
48
+ sema interativo planejar exemplos/sistemas-interativos/game-pixel-16-bit.json --json
49
+ sema interativo validar-evidencias <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json
50
+ sema interativo status <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json
51
+ sema interativo validar-protocolo <adapter-run.json> --json
52
+ ```
53
+
54
+ Every command above is local and declarative. Responses report
55
+ `executed: false` and `workspaceMutated: false`. The CLI does not open an
56
+ engine, editor, browser runtime, or custom simulator.
57
+
58
+ `--evidencias-arquivo` is accepted as an alias for `--bundle-arquivo`. When
59
+ `--plano-arquivo` is omitted, the CLI recomputes the deterministic plan and
60
+ still rejects any bundle whose definition or plan digest does not match.
61
+
62
+ `schema` is the stable, read-only machine contract for definition generation.
63
+ It exposes required fields, supported enum values, cross-field constraints,
64
+ the capability matrix, and canonical example paths. Its advanced command map
65
+ links every positional/option surface to input and output schemas; each data
66
+ schema exposes required top-level fields and official fixtures. Each subcommand
67
+ has an explicit argument allowlist: unknown flags, duplicate semantic flags,
68
+ missing values, and invalid enum values fail closed instead of producing an
69
+ empty successful result.
70
+
71
+ ## Advanced read-only commands
72
+
73
+ The advanced command surface exposes the same pure validators and planners to
74
+ AI agents. File-based commands read JSON, every command returns structured JSON,
75
+ and engine, editor, process, plug-in, and worker inspection remains an external
76
+ integration responsibility.
77
+
78
+ Experience IR:
79
+
80
+ ```bash
81
+ sema interativo validar-ir <experience-ir.json> --json
82
+ sema interativo indexar-ir <experience-ir.json> --json
83
+ sema interativo consultar-ir <experience-ir.json> --semantic-id <id> --json
84
+ sema interativo chunk-ir <experience-ir.json> --semantic-id <id> [--raso] --json
85
+ sema interativo descrever-ir --json
86
+ ```
87
+
88
+ Operational snapshots, provenance, jobs, acceptance, and multimodal evidence:
89
+
90
+ ```bash
91
+ sema interativo validar-engine-snapshot <snapshot.json> --json
92
+ sema interativo diff-engine-snapshots <before.json> <after.json> --json
93
+ sema interativo validar-asset-provenance <provenance.json> --json
94
+ sema interativo validar-editor-state <editor-state.json> --json
95
+ sema interativo planejar-jobs <jobs.json> --json
96
+ sema interativo validar-acceptance <acceptance-lock.json> --json
97
+ sema interativo operar-acceptance <acceptance-lock.json> --operation <VALIDATE|EVALUATE|INVALIDATE> --context-file <context.json> --json
98
+ sema interativo validar-multimodal <evidence.json> --json
99
+ ```
100
+
101
+ Time, autonomy, portability, and distributed work:
102
+
103
+ ```bash
104
+ sema interativo validar-temporal <temporal-contract.json> --json
105
+ sema interativo validar-evidencia-temporal <temporal-contract.json> --bundle-arquivo <temporal-evidence.json> --json
106
+ sema interativo validar-autonomia <repair-cycle.json> --json
107
+ sema interativo validar-playtest-fuzz <playtest-fuzz.json> --json
108
+ sema interativo validar-multiplayer <authority-model.json> --json
109
+ sema interativo analisar-portabilidade <portability-plan.json> --json
110
+ sema interativo validar-workers <distributed-jobs.json> --json
111
+ ```
112
+
113
+ These commands validate descriptions and derive plans, diffs, indexes, queries,
114
+ chunks, eligibility, or assignments. They do not perform the described work.
115
+
116
+ `sema interativo schema --json` publishes distinct input and output shapes for
117
+ all 20 extension commands. The advertised multimodal input includes claim and
118
+ producer/verifier bindings; autonomy includes cycle and acceptance-lock fields;
119
+ and `jobOrchestrationPlan` exposes `requestDigest`, `planDigest`, and an ordered
120
+ `queue` whose entries are the declared job assignments. Result shapes are
121
+ checked against the official fixtures, and every command publishes
122
+ `outputTargets` path segments from the payload root, so an agent never has to
123
+ reuse an input shape or guess where a validator's output lives.
124
+
125
+ ## Bound control runs
126
+
127
+ `validar-control-run` is the fail-closed bridge from a planned pipeline to one
128
+ specific advanced validator invocation. It binds a strict manifest to the
129
+ definition digest, recomputed canonical plan, selected pipeline descriptor,
130
+ validation contract, schema-declared input digests, evidence, producer and
131
+ verifier identity, and the exact validator result. The CLI reruns the selected
132
+ pure validator and rejects a result, contract, input, evidence, or pipeline
133
+ borrowed from another run.
134
+
135
+ ```bash
136
+ sema interativo validar-control-run <control-run.json> \
137
+ --definition-arquivo <definition.json> \
138
+ --plano-arquivo <plan.json> \
139
+ --contrato-arquivo <validation-contract.json> \
140
+ --entrada-arquivo <input.json> \
141
+ [--entrada-auxiliar-arquivo <supporting-input.json>] \
142
+ --evidencia-arquivo <evidence.json> \
143
+ --resultado-arquivo <result.json> \
144
+ --json
145
+ ```
146
+
147
+ This proves deterministic local binding only. A valid control run still returns
148
+ `completed: false`, `authoritative: false`, and
149
+ `awaitingExternalAttestation: true`; it does not prove that an engine, editor,
150
+ worker, verifier, or external adapter actually ran.
151
+
152
+ ## Experience IR
153
+
154
+ Experience IR is the engine-neutral semantic substrate below the advanced
155
+ pipelines. Version `sema.experience-ir/v1` models 20 kinds of project, world,
156
+ scene, entity, component, transform, camera, light, material, texture, audio,
157
+ physics, constraint, animation, VFX, timeline, input, save, network, and build
158
+ objects. Stable semantic IDs and explicit references make the graph queryable
159
+ without relying on engine-specific object paths.
160
+
161
+ The v1 kind set remains unchanged. Eight engine-neutral concepts use optional,
162
+ typed semantic roles in their natural containers, so existing v1 documents
163
+ remain valid while newer documents can expose the concepts explicitly:
164
+
165
+ | Semantic role | Typed v1 representation |
166
+ | --- | --- |
167
+ | `LEVEL` | `SCENE.semanticRole` |
168
+ | `PIVOT` | `TRANSFORM.semanticRole` |
169
+ | `COLLIDER` | `PHYSICS.colliders[]` |
170
+ | `EMITTER` | `VFX.emitters[]` |
171
+ | `TRACK` | `TIMELINE.tracks[].semanticRole` |
172
+ | `CLIP` | `TIMELINE.tracks[].clips[]` |
173
+ | `EVENT` | `TIMELINE.tracks[].events[]` |
174
+ | `GAME_STATE` | `SAVE.semanticRole` |
175
+
176
+ `descrever-ir` publishes this mapping as
177
+ `sema.experience-ir.semantic-roles/v1`. Index and chunk entries expose their
178
+ canonical `semanticRoles`, while node `kind` remains one of the original 20.
179
+ Typed clips participate in reference validation and dependency closure.
180
+
181
+ The IR declares units and coordinate systems, records asset provenance, and
182
+ uses content-addressed digests for deterministic indexing and chunking. JSON is
183
+ the native canonical serialization. CBOR is an explicitly external codec path;
184
+ the CLI does not pretend to encode it. Indexing, lookup, and dependency-aware
185
+ chunks are in-memory read-only operations. They do not import assets, convert a
186
+ project, materialize a scene, or execute a build.
187
+
188
+ Validation also rejects sensitive values under neutral keys, including private
189
+ keys, Bearer credentials, and common `sk`, `ghp`, or `github_pat` token forms,
190
+ as well as credential-bearing URI queries such as `access_token`, `api_key`,
191
+ `signature`, or `X-Amz-*`, without echoing the value or caller-controlled key
192
+ path. Entity and transform
193
+ parent graphs must be acyclic. Network nodes apply cross-field policy:
194
+ `OFFLINE` means `NONE`, no replicated IDs, and tick zero; `CLIENT_SERVER`
195
+ requires `SERVER`; `PEER_TO_PEER` accepts `OWNER` or `DISTRIBUTED`; and
196
+ `LOCKSTEP` requires `DISTRIBUTED`. Every online mode requires declared
197
+ replication and a positive integer tick rate.
198
+
199
+ ## P0, P1, and P2 coverage
200
+
201
+ The advanced surface is grouped by operational responsibility, not rendering
202
+ style:
203
+
204
+ | Priority | Covered responsibilities |
205
+ | --- | --- |
206
+ | P0 — represent and observe | Experience IR; semantic engine snapshots and diffs; asset origin, license, hashes, transforms, and derivatives; editor-state descriptors; multimodal evidence descriptors; job budgets, locks, heartbeats, checkpoints, resume tokens, and recovery; artifact/time-bound acceptance locks. |
207
+ | P1 — validate behavior over time | 4D phases, tracks, clips, and invariants; shots and camera visibility; collision, attachment, and separation relations; flicker, ghosting, popping, exposure, and jitter QA; materialization, clean-install, launch, and smoke-playtest requirements; target hardware budgets. |
208
+ | P2 — diagnose, scale, and migrate | `diagnose -> propose -> simulate -> prove` repair cycles with safe rollback; bounded bots, fuzzing, and save/load recovery; explicit multiplayer authority and reconnect rules; versioned engine migration and cross-engine portability with declared losses; distributed worker DAGs with capabilities, leases, budgets, and checkpoints. |
209
+
210
+ All three groups apply to 3D, 2.5D, 2D, 8-bit, 16-bit, text, XR, and headless
211
+ games or simulations. A visual profile changes constraints and evidence needs;
212
+ it does not switch to a weaker governance model.
213
+
214
+ ## Canonical pipelines
215
+
216
+ The canonical catalog exposes **35 unique pipelines** and **28 unique external
217
+ adapter descriptors**. Pipelines are reusable goals rather than one workflow
218
+ per rendering style.
219
+
220
+ Core pipelines:
221
+
222
+ - `interactive.prototype`
223
+ - `interactive.playtest`
224
+ - `interactive.package`
225
+ - `interactive.release`
226
+ - `interactive.replay`
227
+ - `interactive.calibrate`
228
+ - `interactive.safety`
229
+ - `game.balance`
230
+ - `game.progression`
231
+ - `game.multiplayer`
232
+ - `simulation.scenario`
233
+ - `simulation.batch_run`
234
+ - `simulation.calibrate`
235
+ - `simulation.validate`
236
+ - `simulation.safety`
237
+
238
+ P0/P1/P2 pipelines:
239
+
240
+ - `interactive.experience_ir`
241
+ - `interactive.observe`
242
+ - `interactive.asset_provenance`
243
+ - `interactive.editor_state`
244
+ - `interactive.evidence_capture`
245
+ - `interactive.job_recovery`
246
+ - `interactive.acceptance_lock`
247
+ - `interactive.temporal_validate`
248
+ - `interactive.shot_validate`
249
+ - `interactive.physics_validate`
250
+ - `interactive.temporal_qa`
251
+ - `interactive.clean_install_smoke`
252
+ - `interactive.hardware_budget`
253
+ - `interactive.autonomous_repair`
254
+ - `interactive.bot_playtest`
255
+ - `interactive.state_fuzz`
256
+ - `interactive.multiplayer_authority`
257
+ - `interactive.engine_migration`
258
+ - `interactive.portability`
259
+ - `interactive.distributed_jobs`
260
+
261
+ Spatial model, render mode, and visual profile influence capabilities, budgets,
262
+ evidence, and adapter compatibility. They do not decide the workflow goal.
263
+ `THREE_D + HEADLESS` is therefore valid, while `XR` requires `THREE_D`.
264
+
265
+ ## Adapter boundary
266
+
267
+ Adapter descriptors represent runtime, editor, asset, build, telemetry,
268
+ observation, IR, autonomy, portability, or distributed-job capabilities. They
269
+ describe compatibility; they do not prove that an engine, editor, plug-in, or
270
+ worker is installed, reachable, or running.
271
+
272
+ The protocol model uses a read-only observation prefix:
273
+
274
+ ```text
275
+ DETECT -> PROBE -> SNAPSHOT -> PLAN
276
+ ```
277
+
278
+ Those names describe phases that an external adapter must implement; the local
279
+ CLI does not perform `DETECT` or `PROBE`. Read-only adapters continue with
280
+ `VALIDATE -> EVIDENCE`. Mutating adapters add `APPLY` and must support
281
+ `ROLLBACK`:
282
+
283
+ ```text
284
+ DETECT -> PROBE -> SNAPSHOT -> PLAN -> APPLY -> VALIDATE -> EVIDENCE
285
+ \-> ROLLBACK on failure
286
+ ```
287
+
288
+ Stable semantic target IDs bind every phase. A failed external mutation without
289
+ rollback evidence is a blocking result.
290
+
291
+ The descriptor catalog includes general targets for Unreal, Unity, Godot,
292
+ Blender, web canvas, LÖVE, PICO-8, TIC-80, headless runtimes, simulation
293
+ runners, validators, telemetry, assets, builds, operational observers, IR,
294
+ autonomy, portability, and distributed jobs. These are compatibility
295
+ descriptors, not bundled integrations, probes, detections, or installation
296
+ claims.
297
+
298
+ Planning is provider-aware. `adapterTargets` is an explicit composition, not a
299
+ decorative preference: every expanded stage capability must be supplied by at
300
+ least one selected compatible descriptor. An empty or partial selection
301
+ produces a blocked plan with deterministic candidate and
302
+ recommended-composition output. A telemetry descriptor cannot stand in for an
303
+ executor, and a generic headless descriptor cannot claim packaging capabilities
304
+ it does not declare.
305
+
306
+ ## Evidence and operational truth
307
+
308
+ Pipeline stages declare exact evidence types. Examples include runtime boot,
309
+ first input, loop completion, failure state, deterministic replay, calibration,
310
+ tolerance comparison, package creation, packaged launch, smoke execution, and
311
+ rollback observation.
312
+
313
+ Compilation does not prove playability. Opening an editor does not prove a
314
+ simulation is valid. An editor playtest does not prove a packaged build. A
315
+ runner saying “success” does not replace observed evidence.
316
+
317
+ The portable evidence bundle in v1 is explicitly non-authoritative. It
318
+ validates binding, digests, stage coverage, stable IDs, non-empty observation
319
+ data, and the producing adapter ID/version against the selected provider for
320
+ each stage. High-assurance environments must additionally provide signed
321
+ envelopes, quorum, anti-replay state, and externally retained checkpoints
322
+ through an appropriate trust/ledger layer. Sema does not label a local JSON file
323
+ as a strong trust boundary.
324
+
325
+ When all local structural checks and supplied observation records pass, status
326
+ is `STRUCTURALLY_COMPLETE`. This is **not authoritative completion**. It means
327
+ only that local structural coverage is complete; it deliberately keeps
328
+ `completed: false`, `authoritative: false`, and
329
+ `awaitingExternalAttestation: true`. It does not prove that an engine ran, an
330
+ editor was inspected, a plug-in existed, a worker accepted a job, a package
331
+ launched, or an external observer attested the result.
332
+
333
+ ## Semantic budget split plan
334
+
335
+ The current operational facade remains compatible, but two governed artifacts
336
+ have crossed the planning threshold: `operations.ts` has 1,112 lines and
337
+ `sistemas_interativos_operacao.sema` has 304 lines. Before either reaches its
338
+ blocking limit, split by responsibility as follows:
339
+
340
+ - move engine snapshots, semantic diffs, asset provenance, and editor-state
341
+ observation into `engineObservation.ts`;
342
+ - move queues, locks, budgets, leases, checkpoints, and recovery planning into
343
+ `jobOrchestration.ts`;
344
+ - move acceptance locks, invalidation, and multimodal claim evidence into
345
+ `acceptanceEvidence.ts`;
346
+ - keep `operations.ts` as the stable re-export facade while callers migrate;
348
347
  - split the contract into `sistemas_interativos_observacao_engine.sema`,
349
348
  `sistemas_interativos_orquestracao_jobs.sema`, and
350
349
  `sistemas_interativos_acceptance_evidencias.sema`, with all three contracts
351
- linked to the shared facade and their actual implementation files;
352
- - split the installed-package smoke into helpers for public-boundary security,
353
- Codex bootstrap, content-pipeline compatibility, interactive systems, and
354
- generated toolchains, while retaining the current script as the stable
355
- orchestrator and preserving one end-to-end isolated installation.
356
-
357
- This is a responsibility split, not a numbered-file workaround. Existing
358
- exports, schema versions, fixtures, digests, and fail-closed behavior must remain
359
- backward compatible through the migration.
360
-
361
- ## Fidelity rules
362
-
363
- Visual realism and model validity are separate. A `REALISTIC` or `CALIBRATED`
364
- simulation must declare reference data, units, calibration method, tolerances,
365
- uncertainty, and telemetry. A photorealistic scene without those items is only
366
- photorealistic, not a validated simulation.
367
-
368
- Strict or seeded determinism requires a seed, snapshots, event log, reproducible
369
- step model, and replay result digest. Autonomous or uncontrolled systems require
370
- stopping criteria, boundaries, and safety evidence.
371
-
372
- ## Examples
373
-
374
- The fixtures under `exemplos/sistemas-interativos/` deliberately cover opposing
375
- cases: human-controlled retro games, 2D simulations, 3D calibrated simulations,
376
- and autonomous headless batch execution. The `advanced/` fixtures mirror the
377
- public schemas for IR-adjacent operations, temporal validation, autonomy,
378
- multiplayer authority, portability, distributed jobs, and fully bound control
379
- runs. They are synthetic validation inputs, not captured runtime evidence. The coverage matrix proves
380
- that kind, spatial model, render mode, visual profile, control, fidelity, and
381
- runtime are composable rather than hardcoded around one showcase project.
350
+ linked to the shared facade and their actual implementation files.
351
+
352
+ This is a responsibility split, not a numbered-file workaround. Existing
353
+ exports, schema versions, fixtures, digests, and fail-closed behavior must remain
354
+ backward compatible through the migration.
355
+
356
+ ## Fidelity rules
357
+
358
+ Visual realism and model validity are separate. A `REALISTIC` or `CALIBRATED`
359
+ simulation must declare reference data, units, calibration method, tolerances,
360
+ uncertainty, and telemetry. A photorealistic scene without those items is only
361
+ photorealistic, not a validated simulation.
362
+
363
+ Strict or seeded determinism requires a seed, snapshots, event log, reproducible
364
+ step model, and replay result digest. Autonomous or uncontrolled systems require
365
+ stopping criteria, boundaries, and safety evidence.
366
+
367
+ ## Examples
368
+
369
+ The fixtures under `exemplos/sistemas-interativos/` deliberately cover opposing
370
+ cases: human-controlled retro games, 2D simulations, 3D calibrated simulations,
371
+ and autonomous headless batch execution. The `advanced/` fixtures mirror the
372
+ public schemas for IR-adjacent operations, temporal validation, autonomy,
373
+ multiplayer authority, portability, distributed jobs, and fully bound control
374
+ runs. They are synthetic validation inputs, not captured runtime evidence. The coverage matrix proves
375
+ that kind, spatial model, render mode, visual profile, control, fidelity, and
376
+ runtime are composable rather than hardcoded around one showcase project.