@semacode/cli 2.1.0 → 2.3.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/README.md +107 -4
- package/dist/agentContext.d.ts +1 -1
- package/dist/agentContextPack.js +6 -1
- package/dist/agentContextTipos.d.ts +4 -2
- package/dist/agentContextTipos.js +7 -0
- package/dist/agentEntryPoints.js +70 -19
- package/dist/comandos.js +6 -0
- package/dist/discovery/catalog.d.ts +11 -0
- package/dist/discovery/catalog.js +521 -0
- package/dist/discovery/command.d.ts +11 -0
- package/dist/discovery/command.js +226 -0
- package/dist/discovery/index.d.ts +5 -0
- package/dist/discovery/index.js +8 -0
- package/dist/discovery/ranker.d.ts +3 -0
- package/dist/discovery/ranker.js +310 -0
- package/dist/discovery/redaction.d.ts +2 -0
- package/dist/discovery/redaction.js +21 -0
- package/dist/discovery/render.d.ts +2 -0
- package/dist/discovery/render.js +100 -0
- package/dist/discovery/types.d.ts +119 -0
- package/dist/discovery/types.js +13 -0
- package/dist/execucoesExternas.js +19 -5
- package/dist/exemplosOficiais.js +29 -8
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +24 -5
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +47 -3
- package/dist/index.part06.js +3 -0
- package/dist/initTemplatesBase.js +3 -2
- package/dist/pipelineConteudo/adapters.d.ts +84 -0
- package/dist/pipelineConteudo/adapters.js +449 -0
- package/dist/pipelineConteudo/canonical.d.ts +18 -0
- package/dist/pipelineConteudo/canonical.js +107 -0
- package/dist/pipelineConteudo/command.d.ts +3 -0
- package/dist/pipelineConteudo/command.js +572 -0
- package/dist/pipelineConteudo/index.d.ts +9 -0
- package/dist/pipelineConteudo/index.js +12 -0
- package/dist/pipelineConteudo/ledger.d.ts +68 -0
- package/dist/pipelineConteudo/ledger.js +732 -0
- package/dist/pipelineConteudo/planner.d.ts +12 -0
- package/dist/pipelineConteudo/planner.js +366 -0
- package/dist/pipelineConteudo/projection.d.ts +16 -0
- package/dist/pipelineConteudo/projection.js +57 -0
- package/dist/pipelineConteudo/state.d.ts +23 -0
- package/dist/pipelineConteudo/state.js +615 -0
- package/dist/pipelineConteudo/trust.d.ts +17 -0
- package/dist/pipelineConteudo/trust.js +750 -0
- package/dist/pipelineConteudo/types.d.ts +331 -0
- package/dist/pipelineConteudo/types.js +4 -0
- package/dist/profileArtefatoValidadores.d.ts +3 -2
- package/dist/profileArtefatoValidadores.js +81 -0
- package/dist/profileAuthorTipos.d.ts +4 -3
- package/dist/profileCatalogo.d.ts +5 -5
- package/dist/profileCatalogo.js +30 -0
- package/dist/profileCommand.d.ts +8 -2
- package/dist/profileCommand.js +15 -5
- package/dist/profileRegras.d.ts +5 -5
- package/dist/profileRegras.js +13 -1
- package/dist/profileRulePacks.js +68 -0
- package/dist/sistemasInterativos/adapterProtocol.d.ts +3 -0
- package/dist/sistemasInterativos/adapterProtocol.js +240 -0
- package/dist/sistemasInterativos/advancedCatalog.d.ts +5 -0
- package/dist/sistemasInterativos/advancedCatalog.js +442 -0
- package/dist/sistemasInterativos/autonomy.d.ts +230 -0
- package/dist/sistemasInterativos/autonomy.js +753 -0
- package/dist/sistemasInterativos/canonical.d.ts +3 -0
- package/dist/sistemasInterativos/canonical.js +43 -0
- package/dist/sistemasInterativos/catalog.d.ts +116 -0
- package/dist/sistemasInterativos/catalog.js +543 -0
- package/dist/sistemasInterativos/command.d.ts +7 -0
- package/dist/sistemasInterativos/command.js +311 -0
- package/dist/sistemasInterativos/controlRun.d.ts +56 -0
- package/dist/sistemasInterativos/controlRun.js +391 -0
- package/dist/sistemasInterativos/evidence.d.ts +5 -0
- package/dist/sistemasInterativos/evidence.js +306 -0
- package/dist/sistemasInterativos/experienceIr.d.ts +12 -0
- package/dist/sistemasInterativos/experienceIr.js +895 -0
- package/dist/sistemasInterativos/experienceIrSemantics.d.ts +30 -0
- package/dist/sistemasInterativos/experienceIrSemantics.js +368 -0
- package/dist/sistemasInterativos/experienceIrTypes.d.ts +370 -0
- package/dist/sistemasInterativos/experienceIrTypes.js +5 -0
- package/dist/sistemasInterativos/extensionCommand.d.ts +391 -0
- package/dist/sistemasInterativos/extensionCommand.js +383 -0
- package/dist/sistemasInterativos/index.d.ts +19 -0
- package/dist/sistemasInterativos/index.js +22 -0
- package/dist/sistemasInterativos/operations.d.ts +40 -0
- package/dist/sistemasInterativos/operations.js +1167 -0
- package/dist/sistemasInterativos/operationsTypes.d.ts +297 -0
- package/dist/sistemasInterativos/operationsTypes.js +11 -0
- package/dist/sistemasInterativos/planner.d.ts +2 -0
- package/dist/sistemasInterativos/planner.js +159 -0
- package/dist/sistemasInterativos/portability.d.ts +164 -0
- package/dist/sistemasInterativos/portability.js +539 -0
- package/dist/sistemasInterativos/render.d.ts +3 -0
- package/dist/sistemasInterativos/render.js +179 -0
- package/dist/sistemasInterativos/temporal.d.ts +183 -0
- package/dist/sistemasInterativos/temporal.js +543 -0
- package/dist/sistemasInterativos/types.d.ts +215 -0
- package/dist/sistemasInterativos/types.js +4 -0
- package/dist/sistemasInterativos/validator.d.ts +2 -0
- package/dist/sistemasInterativos/validator.js +305 -0
- package/docs/README.md +9 -0
- package/docs/ai-integration.md +7 -1
- package/docs/ai-workflow.md +5 -4
- package/docs/commands.md +43 -1
- package/docs/descoberta-capacidades.md +106 -0
- package/docs/documentation.md +11 -2
- package/docs/pipeline-conteudo.md +246 -0
- package/docs/profiles.md +11 -2
- package/docs/sistemas-interativos.md +381 -0
- package/docs/testing.md +11 -2
- package/exemplos/pipeline-conteudo/README.md +44 -0
- package/exemplos/pipeline-conteudo/alvos.json +23 -0
- package/exemplos/pipeline-conteudo/definicao.json +136 -0
- package/exemplos/profile_simulation.sema +211 -0
- package/exemplos/sistemas-interativos/README.md +100 -0
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -0
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -0
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -0
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -0
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -0
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -0
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -0
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -0
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -0
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -0
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -0
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -0
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -0
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -0
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -0
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -0
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -0
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -0
- package/exemplos/sistemas-interativos/game-2d.json +83 -0
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -0
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -0
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -0
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -0
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -0
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -0
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -0
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -0
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -0
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -0
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -0
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -0
- package/node_modules/@sema/gerador-lua/dist/index.js +78 -4
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-php/dist/index.js +8 -0
- package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
- package/package.json +8 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.editor-state/v1",
|
|
3
|
+
"editorSessionId": "editor.session",
|
|
4
|
+
"adapter": {
|
|
5
|
+
"adapterId": "engine.custom",
|
|
6
|
+
"adapterVersion": "1.0.0"
|
|
7
|
+
},
|
|
8
|
+
"scene": {
|
|
9
|
+
"semanticId": "scene.main",
|
|
10
|
+
"artifactDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
11
|
+
},
|
|
12
|
+
"selection": ["entity.root"],
|
|
13
|
+
"mode": "EDIT",
|
|
14
|
+
"unsavedChanges": true,
|
|
15
|
+
"shaderJobs": [
|
|
16
|
+
{ "jobId": "job.shader", "status": "RUNNING", "progressBasisPoints": 4200 }
|
|
17
|
+
],
|
|
18
|
+
"importJobs": [
|
|
19
|
+
{ "jobId": "job.import", "status": "QUEUED", "progressBasisPoints": 0 }
|
|
20
|
+
],
|
|
21
|
+
"plugins": [
|
|
22
|
+
{
|
|
23
|
+
"pluginId": "Plugin.Render",
|
|
24
|
+
"version": "1.2.0",
|
|
25
|
+
"enabled": true,
|
|
26
|
+
"provenanceDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"modals": [
|
|
30
|
+
{ "modalId": "modal.import", "kind": "ImportOptions", "blocking": true }
|
|
31
|
+
],
|
|
32
|
+
"processes": [
|
|
33
|
+
{
|
|
34
|
+
"processRef": "opaque:sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
35
|
+
"role": "SHADER_COMPILER",
|
|
36
|
+
"state": "RUNNING"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"observedAt": "2026-07-20T03:00:00.000Z",
|
|
40
|
+
"readOnly": true,
|
|
41
|
+
"authoritative": false
|
|
42
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.engine-snapshot/v1",
|
|
3
|
+
"snapshotId": "snapshot.after",
|
|
4
|
+
"projectId": "project.demo",
|
|
5
|
+
"sceneId": "scene.main",
|
|
6
|
+
"adapter": {
|
|
7
|
+
"adapterId": "engine.custom",
|
|
8
|
+
"adapterVersion": "1.0.0"
|
|
9
|
+
},
|
|
10
|
+
"semanticObjects": [
|
|
11
|
+
{
|
|
12
|
+
"semanticId": "entity.root",
|
|
13
|
+
"kind": "Entity",
|
|
14
|
+
"stateDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
15
|
+
"componentDigests": {
|
|
16
|
+
"Transform": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"semanticId": "entity.child",
|
|
21
|
+
"kind": "Entity",
|
|
22
|
+
"parentSemanticId": "entity.root",
|
|
23
|
+
"stateDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
24
|
+
"componentDigests": {
|
|
25
|
+
"Mesh": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
30
|
+
"readOnly": true,
|
|
31
|
+
"authoritative": false
|
|
32
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.engine-snapshot/v1",
|
|
3
|
+
"snapshotId": "snapshot.before",
|
|
4
|
+
"projectId": "project.demo",
|
|
5
|
+
"sceneId": "scene.main",
|
|
6
|
+
"adapter": {
|
|
7
|
+
"adapterId": "engine.custom",
|
|
8
|
+
"adapterVersion": "1.0.0"
|
|
9
|
+
},
|
|
10
|
+
"semanticObjects": [
|
|
11
|
+
{
|
|
12
|
+
"semanticId": "entity.root",
|
|
13
|
+
"kind": "Entity",
|
|
14
|
+
"stateDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
15
|
+
"componentDigests": {
|
|
16
|
+
"Transform": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"artifactDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
21
|
+
"readOnly": true,
|
|
22
|
+
"authoritative": false
|
|
23
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.job-orchestration/v1",
|
|
3
|
+
"queueId": "queue.render",
|
|
4
|
+
"capacity": { "ramMb": 32768, "vramMb": 12288, "diskMb": 200000 },
|
|
5
|
+
"lockCapacity": { "GPU": 1, "EDITOR": 1, "CACHE": 1 },
|
|
6
|
+
"jobs": [
|
|
7
|
+
{
|
|
8
|
+
"jobId": "job.import",
|
|
9
|
+
"kind": "IMPORT",
|
|
10
|
+
"priority": 50,
|
|
11
|
+
"dependencies": [],
|
|
12
|
+
"locks": ["CACHE"],
|
|
13
|
+
"budget": { "ramMb": 2048, "vramMb": 0, "diskMb": 10000 },
|
|
14
|
+
"heartbeat": { "intervalMs": 1000, "timeoutMs": 5000 },
|
|
15
|
+
"checkpoint": {
|
|
16
|
+
"intervalMs": 10000,
|
|
17
|
+
"resume": false,
|
|
18
|
+
"recoveryToken": "opaque:sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
19
|
+
},
|
|
20
|
+
"adapter": { "adapterId": "engine.custom", "adapterVersion": "1.0.0" }
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"jobId": "job.render",
|
|
24
|
+
"kind": "RENDER",
|
|
25
|
+
"priority": 90,
|
|
26
|
+
"dependencies": ["job.import"],
|
|
27
|
+
"locks": ["GPU", "EDITOR"],
|
|
28
|
+
"budget": { "ramMb": 8192, "vramMb": 8192, "diskMb": 50000 },
|
|
29
|
+
"heartbeat": { "intervalMs": 1000, "timeoutMs": 5000 },
|
|
30
|
+
"checkpoint": {
|
|
31
|
+
"intervalMs": 10000,
|
|
32
|
+
"resume": true,
|
|
33
|
+
"checkpointDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
34
|
+
"recoveryToken": "opaque:sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
|
35
|
+
},
|
|
36
|
+
"adapter": { "adapterId": "engine.custom", "adapterVersion": "1.0.0" }
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.multimodal-evidence/v1",
|
|
3
|
+
"evidenceId": "evidence.multimodal",
|
|
4
|
+
"runId": "run.validation",
|
|
5
|
+
"claimId": "claim.render.quality",
|
|
6
|
+
"definitionDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
7
|
+
"planDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
8
|
+
"contractDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
|
|
9
|
+
"claimBindingDigest": "sha256:1525382b87d90d5a5f7277790e0b88383cd17bf3ddb749f5f7640d18fba4c810",
|
|
10
|
+
"artifactDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
11
|
+
"sceneId": "scene.main",
|
|
12
|
+
"timeRange": { "start": 0, "end": 10, "unit": "SECOND" },
|
|
13
|
+
"requiredModalities": ["SCREENSHOT", "VIDEO", "DEPTH", "NORMALS", "OBJECT_ID", "MOTION", "TRANSFORMS", "EVENTS", "AUDIO", "TELEMETRY"],
|
|
14
|
+
"channels": [
|
|
15
|
+
{ "channelId": "channel.screenshot", "type": "SCREENSHOT", "artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "mediaType": "image/png", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 1 },
|
|
16
|
+
{ "channelId": "channel.video", "type": "VIDEO", "artifactDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "mediaType": "video/mp4", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 2 },
|
|
17
|
+
{ "channelId": "channel.depth", "type": "DEPTH", "artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 3 },
|
|
18
|
+
{ "channelId": "channel.normals", "type": "NORMALS", "artifactDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 4 },
|
|
19
|
+
{ "channelId": "channel.object_id", "type": "OBJECT_ID", "artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "mediaType": "image/png", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 5 },
|
|
20
|
+
{ "channelId": "channel.motion", "type": "MOTION", "artifactDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 6 },
|
|
21
|
+
{ "channelId": "channel.transforms", "type": "TRANSFORMS", "artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 7 },
|
|
22
|
+
{ "channelId": "channel.events", "type": "EVENTS", "artifactDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 8 },
|
|
23
|
+
{ "channelId": "channel.audio", "type": "AUDIO", "artifactDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "mediaType": "audio/wav", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 9 },
|
|
24
|
+
{ "channelId": "channel.telemetry", "type": "TELEMETRY", "artifactDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "mediaType": "application/json", "metadataDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "sampleCount": 10 }
|
|
25
|
+
],
|
|
26
|
+
"producer": {
|
|
27
|
+
"producerIdDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
28
|
+
"producerType": "ENGINE",
|
|
29
|
+
"version": "1.0.0",
|
|
30
|
+
"configurationDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
|
|
31
|
+
},
|
|
32
|
+
"verifier": {
|
|
33
|
+
"verifierIdDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
34
|
+
"verifierType": "MODEL",
|
|
35
|
+
"version": "1.0.0",
|
|
36
|
+
"independent": true,
|
|
37
|
+
"configurationDigest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
|
38
|
+
},
|
|
39
|
+
"decision": {
|
|
40
|
+
"verdict": "PASS",
|
|
41
|
+
"reasonCodes": ["geometry_ok", "timing_ok"],
|
|
42
|
+
"confidenceBasisPoints": 9500
|
|
43
|
+
},
|
|
44
|
+
"observedAt": "2026-07-20T03:30:00.000Z",
|
|
45
|
+
"authoritative": false
|
|
46
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.multiplayer-authority/v1",
|
|
3
|
+
"modelId": "authority.game.1",
|
|
4
|
+
"systemId": "interactive.system",
|
|
5
|
+
"topology": "SERVER_AUTHORITATIVE",
|
|
6
|
+
"authorities": [
|
|
7
|
+
{ "authorityId": "authority.server", "role": "SERVER", "principalId": "server.primary" },
|
|
8
|
+
{ "authorityId": "authority.client.1", "role": "CLIENT", "principalId": "player.1" }
|
|
9
|
+
],
|
|
10
|
+
"replicatedState": [
|
|
11
|
+
{
|
|
12
|
+
"stateId": "state.inventory",
|
|
13
|
+
"semanticTargetId": "player.1.inventory",
|
|
14
|
+
"sensitive": true,
|
|
15
|
+
"ownerAuthorityId": "authority.server",
|
|
16
|
+
"writerAuthorityIds": ["authority.server"],
|
|
17
|
+
"readerAuthorityIds": ["authority.server", "authority.client.1"],
|
|
18
|
+
"frequencyHz": 10,
|
|
19
|
+
"conflictPolicy": "SERVER_WINS",
|
|
20
|
+
"clientInputValidated": true
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"conflicts": [
|
|
24
|
+
{
|
|
25
|
+
"conflictId": "conflict.inventory",
|
|
26
|
+
"stateId": "state.inventory",
|
|
27
|
+
"resolution": "server validates sequence and wins"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"reconnect": {
|
|
31
|
+
"disconnectDetected": true,
|
|
32
|
+
"reconnectAllowed": true,
|
|
33
|
+
"resyncSnapshot": true,
|
|
34
|
+
"replaySinceSequence": true,
|
|
35
|
+
"timeoutMs": 10000
|
|
36
|
+
},
|
|
37
|
+
"securityInvariants": ["IDENTITY", "AUTHORIZATION", "ANTI_REPLAY", "RATE_LIMIT", "INTEGRITY"],
|
|
38
|
+
"evidenceRequirements": ["multiplayer.session", "multiplayer.sync", "multiplayer.conflict", "multiplayer.reconnect", "multiplayer.authority"]
|
|
39
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.playtest-fuzz/v1",
|
|
3
|
+
"planId": "playtest.fuzz.1",
|
|
4
|
+
"systemId": "interactive.system",
|
|
5
|
+
"definitionDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
6
|
+
"inputActions": [
|
|
7
|
+
{ "actionId": "input.move_x", "type": "AXIS", "minimum": -1, "maximum": 1 },
|
|
8
|
+
{ "actionId": "input.confirm", "type": "BUTTON", "minimum": 0, "maximum": 1 }
|
|
9
|
+
],
|
|
10
|
+
"bots": [
|
|
11
|
+
{
|
|
12
|
+
"botId": "bot.explorer.42",
|
|
13
|
+
"strategy": "EXPLORER",
|
|
14
|
+
"seed": 42,
|
|
15
|
+
"maxSteps": 1000,
|
|
16
|
+
"permissions": ["input.move_x", "input.confirm"]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"stateCheckpoints": [
|
|
20
|
+
{ "checkpointId": "checkpoint.before", "phase": "BEFORE", "stateDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222" },
|
|
21
|
+
{ "checkpointId": "checkpoint.after", "phase": "AFTER", "stateDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" }
|
|
22
|
+
],
|
|
23
|
+
"saveLoadCases": [
|
|
24
|
+
{ "caseId": "case.normal", "type": "NORMAL", "sourceCheckpointId": "checkpoint.before", "targetCheckpointId": "checkpoint.after", "sandboxOnly": true, "originalImmutable": true },
|
|
25
|
+
{ "caseId": "case.corrupt", "type": "CORRUPT_RECOVERY", "sourceCheckpointId": "checkpoint.before", "targetCheckpointId": "checkpoint.after", "sandboxOnly": true, "originalImmutable": true },
|
|
26
|
+
{ "caseId": "case.migration", "type": "VERSION_MIGRATION", "sourceCheckpointId": "checkpoint.before", "targetCheckpointId": "checkpoint.after", "sandboxOnly": true, "originalImmutable": true }
|
|
27
|
+
],
|
|
28
|
+
"fuzzBounds": {
|
|
29
|
+
"maxSteps": 10000,
|
|
30
|
+
"maxRuntimeSeconds": 300,
|
|
31
|
+
"maxMemoryMb": 2048,
|
|
32
|
+
"maxDiskMb": 1024,
|
|
33
|
+
"maxCases": 100
|
|
34
|
+
},
|
|
35
|
+
"stopCriteria": ["CRASH", "HANG", "RESOURCE_EXHAUSTION", "INVARIANT_FAILURE"],
|
|
36
|
+
"evidenceRequirements": ["runtime.boot", "runtime.loop", "runtime.failure", "runtime.replay", "state.digest", "crash.trace"]
|
|
37
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.portability/v1",
|
|
3
|
+
"planId": "portability.unreal.unity",
|
|
4
|
+
"systemId": "interactive.system",
|
|
5
|
+
"experienceIrDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
6
|
+
"source": {
|
|
7
|
+
"engine": "Unreal",
|
|
8
|
+
"version": "5.6.0",
|
|
9
|
+
"snapshotDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
10
|
+
"coordinateSystem": "centimeter left-handed Z-up"
|
|
11
|
+
},
|
|
12
|
+
"sourceManifest": {
|
|
13
|
+
"experienceIrDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
14
|
+
"snapshotDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
15
|
+
"entries": [
|
|
16
|
+
{
|
|
17
|
+
"semanticId": "vehicle.crewed",
|
|
18
|
+
"sourceKind": "Actor.Transform",
|
|
19
|
+
"contentDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
20
|
+
"required": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"semanticId": "vfx.reentry.plasma",
|
|
24
|
+
"sourceKind": "NiagaraSystem",
|
|
25
|
+
"contentDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
26
|
+
"required": true
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"semanticId": "audio.reentry.dynamic",
|
|
30
|
+
"sourceKind": "MetaSound",
|
|
31
|
+
"contentDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
32
|
+
"required": true
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"manifestDigest": "sha256:34f89b97cd0304af40783e6e4f7ee7c2fd079b5d831917f7e11bfbd8db0ca025"
|
|
36
|
+
},
|
|
37
|
+
"targets": [
|
|
38
|
+
{
|
|
39
|
+
"targetId": "target.unity",
|
|
40
|
+
"engine": "Unity",
|
|
41
|
+
"version": "6.0.0",
|
|
42
|
+
"outputFormat": "USD plus sidecars",
|
|
43
|
+
"mappings": [
|
|
44
|
+
{
|
|
45
|
+
"mappingId": "mapping.transform",
|
|
46
|
+
"semanticId": "vehicle.crewed",
|
|
47
|
+
"sourceKind": "Actor.Transform",
|
|
48
|
+
"targetKind": "GameObject.Transform",
|
|
49
|
+
"status": "EXACT",
|
|
50
|
+
"losses": [],
|
|
51
|
+
"acceptanceCriteria": ["world transform preserved within tolerance"]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"mappingId": "mapping.niagara",
|
|
55
|
+
"semanticId": "vfx.reentry.plasma",
|
|
56
|
+
"sourceKind": "NiagaraSystem",
|
|
57
|
+
"targetKind": "VFXGraph",
|
|
58
|
+
"status": "APPROXIMATE",
|
|
59
|
+
"losses": ["renderer_module_mapping", "curve_precision"],
|
|
60
|
+
"fallback": "bake curves and rebuild unsupported modules",
|
|
61
|
+
"acceptanceCriteria": ["timing and bounds preserved", "visual review required"]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"mappingId": "mapping.metasound",
|
|
65
|
+
"semanticId": "audio.reentry.dynamic",
|
|
66
|
+
"sourceKind": "MetaSound",
|
|
67
|
+
"targetKind": "AudioMixerGraph",
|
|
68
|
+
"status": "UNSUPPORTED",
|
|
69
|
+
"losses": ["procedural_audio_graph"],
|
|
70
|
+
"fallback": "render stems and preserve event sidecar",
|
|
71
|
+
"acceptanceCriteria": ["event timing preserved", "user accepts non-procedural fallback"]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"migrations": [
|
|
77
|
+
{
|
|
78
|
+
"migrationId": "migration.unreal.55.56",
|
|
79
|
+
"targetId": "target.unity",
|
|
80
|
+
"engine": "Unreal",
|
|
81
|
+
"fromVersion": "5.5.0",
|
|
82
|
+
"toVersion": "5.6.0",
|
|
83
|
+
"backupDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
84
|
+
"compatibilityReportDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
85
|
+
"testPlanDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
|
86
|
+
"rollbackPlanDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"acceptance": {
|
|
90
|
+
"maxUnsupportedPerTarget": 1,
|
|
91
|
+
"allowApproximate": true,
|
|
92
|
+
"requiredEvidence": [
|
|
93
|
+
"import.scene",
|
|
94
|
+
"import.assets",
|
|
95
|
+
"import.materials",
|
|
96
|
+
"import.animation",
|
|
97
|
+
"import.physics",
|
|
98
|
+
"import.audio",
|
|
99
|
+
"import.timeline",
|
|
100
|
+
"package.build",
|
|
101
|
+
"runtime.smoke"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.temporal-evidence/v1",
|
|
3
|
+
"runId": "run.temporal.1",
|
|
4
|
+
"contractDigest": "sha256:de8c602231b1538d1f73b31ac50f4ab940a395768debf29b262bd8d04c330cd5",
|
|
5
|
+
"producerId": "runner.temporal.external",
|
|
6
|
+
"producerVersion": "2.0.0",
|
|
7
|
+
"producerConfigurationDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
|
8
|
+
"verifierId": "verifier.temporal.independent",
|
|
9
|
+
"verifierVersion": "1.0.0",
|
|
10
|
+
"verifierConfigurationDigest": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
|
11
|
+
"independentOfProducer": true,
|
|
12
|
+
"observations": [
|
|
13
|
+
{ "observationId": "observation.1", "checkId": "build.clean_install", "decision": "PASS", "evidenceTypes": ["INSTALL_LOG"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" },
|
|
14
|
+
{ "observationId": "observation.2", "checkId": "build.launch", "decision": "PASS", "evidenceTypes": ["LAUNCH_LOG"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" },
|
|
15
|
+
{ "observationId": "observation.3", "checkId": "build.materialize", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" },
|
|
16
|
+
{ "observationId": "observation.4", "checkId": "build.smoke_playtest", "decision": "PASS", "evidenceTypes": ["PLAYTEST_TRACE"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333" },
|
|
17
|
+
{ "observationId": "observation.5", "checkId": "hardware:rtx3060_1080p60", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "metrics": [{ "name": "target_fps", "value": 60, "unit": "fps", "threshold": 60 }, { "name": "frame_time_p95_ms", "value": 16, "unit": "ms", "threshold": 16.7 }, { "name": "ram_mb", "value": 4096, "unit": "mb", "threshold": 8192 }, { "name": "vram_mb", "value": 3072, "unit": "mb", "threshold": 6144 }, { "name": "disk_mb", "value": 2048, "unit": "mb", "threshold": 4096 }] },
|
|
18
|
+
{ "observationId": "observation.6", "checkId": "invariant.contact_before_splash", "decision": "PASS", "evidenceTypes": ["AUDIO_TRACE", "EVENT_TRACE"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME" },
|
|
19
|
+
{ "observationId": "observation.7", "checkId": "physics.capsule_water_contact", "decision": "PASS", "evidenceTypes": ["COLLISION_TRACE", "TRANSFORMS"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME" },
|
|
20
|
+
{ "observationId": "observation.8", "checkId": "qa.exposure", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME", "metrics": [{ "name": "exposure", "value": 0.1, "unit": "ev", "threshold": 0.2 }] },
|
|
21
|
+
{ "observationId": "observation.9", "checkId": "qa.flicker", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME", "metrics": [{ "name": "flicker", "value": 0.01, "unit": "ratio", "threshold": 0.02 }] },
|
|
22
|
+
{ "observationId": "observation.10", "checkId": "qa.ghosting", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME", "metrics": [{ "name": "ghosting", "value": 0.01, "unit": "ratio", "threshold": 0.03 }] },
|
|
23
|
+
{ "observationId": "observation.11", "checkId": "qa.jitter", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME", "metrics": [{ "name": "jitter", "value": 1, "unit": "pixel", "threshold": 1.5 }] },
|
|
24
|
+
{ "observationId": "observation.12", "checkId": "qa.popping", "decision": "PASS", "evidenceTypes": ["TELEMETRY"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME", "metrics": [{ "name": "popping", "value": 0, "unit": "event", "threshold": 1 }] },
|
|
25
|
+
{ "observationId": "observation.13", "checkId": "shot.keep_capsule_visible", "decision": "PASS", "evidenceTypes": ["VIDEO", "OBJECT_ID", "DEPTH"], "artifactDigests": ["sha256:2222222222222222222222222222222222222222222222222222222222222222"], "sampleCount": 2, "traceDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333", "phaseId": "descent", "frame": 390, "timeUnit": "FRAME" }
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "sema.interactive.temporal/v1",
|
|
3
|
+
"contractId": "mission.return.timeline",
|
|
4
|
+
"systemId": "interactive.system",
|
|
5
|
+
"experienceIrDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
|
6
|
+
"coordinateSystem": {
|
|
7
|
+
"unit": "meter",
|
|
8
|
+
"handedness": "RIGHT",
|
|
9
|
+
"upAxis": "Z",
|
|
10
|
+
"forwardAxis": "X"
|
|
11
|
+
},
|
|
12
|
+
"phases": [
|
|
13
|
+
{
|
|
14
|
+
"phaseId": "descent",
|
|
15
|
+
"start": 0,
|
|
16
|
+
"end": 600,
|
|
17
|
+
"timeUnit": "FRAME"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"tracks": [
|
|
21
|
+
{
|
|
22
|
+
"trackId": "track.audio",
|
|
23
|
+
"type": "AUDIO",
|
|
24
|
+
"clips": [
|
|
25
|
+
{
|
|
26
|
+
"clipId": "clip.audio",
|
|
27
|
+
"phaseId": "descent",
|
|
28
|
+
"semanticTargetId": "audio.splash",
|
|
29
|
+
"start": 300,
|
|
30
|
+
"end": 420,
|
|
31
|
+
"timeUnit": "FRAME"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"trackId": "track.event",
|
|
37
|
+
"type": "EVENT",
|
|
38
|
+
"clips": [
|
|
39
|
+
{
|
|
40
|
+
"clipId": "clip.contact",
|
|
41
|
+
"phaseId": "descent",
|
|
42
|
+
"semanticTargetId": "event.water_contact",
|
|
43
|
+
"start": 389,
|
|
44
|
+
"end": 391,
|
|
45
|
+
"timeUnit": "FRAME"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"invariants": [
|
|
51
|
+
{
|
|
52
|
+
"invariantId": "invariant.contact_before_splash",
|
|
53
|
+
"type": "ORDER",
|
|
54
|
+
"phaseId": "descent",
|
|
55
|
+
"trackIds": ["track.audio", "track.event"],
|
|
56
|
+
"subjectIds": ["vehicle.crewed", "water.surface"],
|
|
57
|
+
"threshold": 3,
|
|
58
|
+
"unit": "frame"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"shots": [
|
|
62
|
+
{
|
|
63
|
+
"shotId": "shot.keep_capsule_visible",
|
|
64
|
+
"phaseId": "descent",
|
|
65
|
+
"cameraId": "camera.main",
|
|
66
|
+
"subjectIds": ["vehicle.crewed"],
|
|
67
|
+
"start": 0,
|
|
68
|
+
"end": 600,
|
|
69
|
+
"timeUnit": "FRAME",
|
|
70
|
+
"composition": "capsule centered with horizon context",
|
|
71
|
+
"minimumVisibilityRatio": 0.92,
|
|
72
|
+
"maximumJitter": 1.5
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"physics": [
|
|
76
|
+
{
|
|
77
|
+
"relationId": "physics.capsule_water_contact",
|
|
78
|
+
"type": "COLLISION",
|
|
79
|
+
"phaseId": "descent",
|
|
80
|
+
"sourceId": "vehicle.crewed",
|
|
81
|
+
"targetId": "water.surface",
|
|
82
|
+
"start": 380,
|
|
83
|
+
"end": 410,
|
|
84
|
+
"timeUnit": "FRAME",
|
|
85
|
+
"tolerance": 0.02,
|
|
86
|
+
"unit": "meter"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"temporalQa": {
|
|
90
|
+
"checks": [
|
|
91
|
+
{ "checkId": "qa.flicker", "type": "FLICKER", "phaseId": "descent", "threshold": 0.02, "unit": "ratio" },
|
|
92
|
+
{ "checkId": "qa.ghosting", "type": "GHOSTING", "phaseId": "descent", "threshold": 0.03, "unit": "ratio" },
|
|
93
|
+
{ "checkId": "qa.popping", "type": "POPPING", "phaseId": "descent", "threshold": 1, "unit": "event" },
|
|
94
|
+
{ "checkId": "qa.exposure", "type": "EXPOSURE", "phaseId": "descent", "threshold": 0.2, "unit": "ev" },
|
|
95
|
+
{ "checkId": "qa.jitter", "type": "JITTER", "phaseId": "descent", "threshold": 1.5, "unit": "pixel" }
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
"buildAcceptance": {
|
|
99
|
+
"required": true,
|
|
100
|
+
"artifactDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
|
101
|
+
"cleanInstallRequired": true,
|
|
102
|
+
"launchRequired": true,
|
|
103
|
+
"smokePlaytestRequired": true
|
|
104
|
+
},
|
|
105
|
+
"hardwareTargets": [
|
|
106
|
+
{
|
|
107
|
+
"profileId": "rtx3060_1080p60",
|
|
108
|
+
"gpu": "RTX 3060",
|
|
109
|
+
"cpu": "6-core reference CPU",
|
|
110
|
+
"resolution": { "width": 1920, "height": 1080 },
|
|
111
|
+
"targetFps": 60,
|
|
112
|
+
"frameTimeP95Ms": 16.7,
|
|
113
|
+
"maxRamMb": 8192,
|
|
114
|
+
"maxVramMb": 6144,
|
|
115
|
+
"maxDiskMb": 4096
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|