This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
EveUnity/packages/org.gamecult.eve.unity-scene/eve-runtime-capability.json
2026-07-10 16:32:51 +01:00

245 lines
19 KiB
JSON

{
"schema": "gamecult.eve.runtime_capability.v1",
"runtimeId": "unity-scene",
"title": "Unity / Scene",
"owner": "EveUnity",
"incubation": {
"ownerRepo": "EveUnity",
"currentHostRepo": "EveUnity",
"splitTarget": "EveUnity",
"graduationTrigger": "Graduated: EveUnity owns the provider-agnostic Unity scene package, release lifecycle, runtime tests, and generic PlayMode capture. The Aetheria daemon product witness remains active lifecycle work.",
"splitHandoff": {
"manifestPath": "",
"smokeCommand": ""
}
},
"supportedFeatures": [
"providerAdvertisements",
"verseDiscovery",
"genericPlayableWorldDiscovery",
"commandTransport",
"providerSurfaceSession",
"providerSurfaceSource",
"providerSurfaceDocumentSource",
"liveProviderTransportBridge",
"livePlayableWorldClient",
"providerCommandReceipts",
"providerAssetManifestDocumentSource",
"playableWorldClientHost",
"playableWorldClientBootstrap",
"playableWorldInputDriver",
"playableWorldCameraRig",
"sceneGraphProjection",
"playableWorldProjection",
"playableWorldRuntimeHost",
"playableWorldScenePresentation",
"unityGameObjectSceneSink",
"providerAssetManifestResolution",
"providerAssetManifestSource",
"embeddedDocuments"
],
"supportedPlugins": [
{
"pluginId": "fields.surface",
"capabilities": [
"field.surface2d",
"gravity.surface"
],
"projectionAdapter": "EveFieldsSplatRasterizer",
"evidencePaths": [
"Runtime/Fields/EveFieldsSplatRasterizer.cs",
"Runtime/Fields/EveFieldsSplatLayerRenderer.cs",
"Tests/Editor/EveFieldsUnitySceneProjectionTests.cs",
"artifacts/fields-surface/latest/unity-fields.png"
]
},
{
"pluginId": "sai.vn",
"capabilities": [
"vn.stage",
"story.choose",
"story.continue",
"story.jump"
],
"projectionAdapter": "SaiVisualNovelUnitySceneProjectionAdapter"
},
{
"pluginId": "norn.graph",
"capabilities": [
"embed.norn"
],
"projectionAdapter": "NornGraphUnitySceneProjectionAdapter"
},
{
"pluginId": "tex.math",
"capabilities": [
"embed.tex",
"tex.inline",
"tex.block",
"tex.scene-placement"
],
"projectionAdapter": "TeXMathUnitySceneProjectionAdapter"
}
],
"unsupportedPlugins": [
],
"worldSurfaceLowering": [
{
"targetId": "unity-scene",
"surfaceKinds": [
"interactive-world"
],
"projectionKinds": [
"provider-authored-world-surface"
],
"supportLevel": "unity-playable-world-scene-command-surface",
"ownership": "runtime-lowers-provider-world-surface-without-owning-world-state",
"evidencePaths": [
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnitySceneSurfaceLowerer.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnitySceneClientSession.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnitySceneProviderConnection.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnitySceneLiveProviderBridge.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/CultMesh/EveUnityCultMeshProviderDiscovery.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/CultMesh/EveUnityCultMeshPlayableWorldProvider.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldLiveClient.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldRuntime.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldClientHost.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldClientBootstrap.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldInputDriver.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldCameraRig.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityProviderRefreshSource.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldPresenter.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityGameObjectPlayableWorldSceneSink.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/EveUnityPlayableWorldAssetManifest.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/SaiVisualNovelUnitySceneProjectionAdapter.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/NornGraphUnitySceneProjectionAdapter.cs",
"packages/org.gamecult.eve.unity-scene/Runtime/TeXMathUnitySceneProjectionAdapter.cs",
"packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnitySceneSurfaceLowererTests.cs"
]
}
],
"commandTransport": {
"schema": "gamecult.eve.command_invocation.v1",
"status": "provider-shell-contract-skeleton",
"emitter": "EveUnitySceneSurfaceLowerer.CreateCommandIntent",
"clientId": "unity-scene",
"authority": "Unity scene input emits command intents through provider-advertised command boundaries; providers accept, deny, and publish receipts."
},
"lifecycle": {
"release": {
"ownerRepo": "EveUnity",
"status": "tagged-upm-release",
"releaseContract": {
"ownerRepo": "EveUnity",
"packageName": "org.gamecult.eve.unity-scene",
"packageRoot": "packages/org.gamecult.eve.unity-scene",
"versionSource": "packages/org.gamecult.eve.unity-scene/package.json",
"tagPattern": "eveunity-scene-v{version}",
"artifactKind": "upm-package",
"requestSchema": "gamecult.eve.runtime_release_request.v1",
"requestBuilder": "scripts/build-release-request.ps1",
"artifactBuilder": "scripts/pack.ps1",
"artifactPattern": "artifacts/eveunity-scene-release/{version}/org.gamecult.eve.unity-scene-{version}.tgz",
"publishProof": "Tagged Unity scene package release is created from the EveUnity repository.",
"requiredPackageDependencies": [
{
"packageName": "org.gamecult.eve.surface",
"version": "0.1.0",
"packageManager": "upm",
"ownerRepo": "EveUnity",
"purpose": "Shared Unity DTOs for gamecult.eve.surface.v1 documents."
}
]
},
"evidencePaths": [
"packages/org.gamecult.eve.unity-scene/package.json",
"packages/org.gamecult.eve.unity-scene/Runtime/GameCult.Eve.UnityScene.asmdef",
"scripts/pack.ps1",
"scripts/build-release-request.ps1"
],
"pendingProofs": [
]
},
"test": {
"ownerRepo": "EveUnity",
"status": "released-package-editmode-batchmode",
"testContract": {
"ownerRepo": "EveUnity",
"runnerKind": "unity-editmode-batchmode",
"runnerScript": "scripts/run-package-tests.ps1",
"consumerProject": "TestProject",
"packageName": "org.gamecult.eve.unity-scene",
"testAssembly": "GameCult.Eve.UnityScene.Tests",
"testPlatform": "EditMode",
"resultsArtifact": "artifacts/package-tests/{stamp}/unity-editmode-results.xml",
"logArtifact": "artifacts/package-tests/{stamp}/unity-editmode.log",
"manifestMutation": "none"
},
"evidencePaths": [
"packages/org.gamecult.eve.unity-scene/Tests/Editor/GameCult.Eve.UnityScene.Tests.asmdef",
"packages/org.gamecult.eve.unity-scene/Tests/Editor/EveUnitySceneSurfaceLowererTests.cs",
"scripts/run-package-tests.ps1"
],
"pendingProofs": []
},
"capture": {
"ownerRepo": "EveUnity",
"status": "released-aetheria-playmode-capture",
"captureContract": {
"ownerRepo": "EveUnity",
"runtimeId": "unity-scene",
"targetId": "unity-scene",
"requestSchema": "gamecult.eve.runtime_capture_request.v1",
"requestBuilder": "scripts/build-capture-request.ps1",
"advertisementPath": "Aetheria:conformance/eve/aetheria.provider-advertisement.json",
"captureKind": "unity-scene-frame-png",
"artifactKind": "png",
"artifactPattern": "artifacts/eveunity-scene-capture/{stamp}/unity-scene.png",
"conformanceAttachment": "runtime.captureArtifacts[]",
"requiredProvider": "aetheria",
"requiredSurface": "aetheria.daemon.game",
"additionalProviderSurfaces": [
{
"providerId": "eve.world-smoke",
"surfaceId": "eve.world-smoke.surface",
"purpose": "Generic non-product interactive-world capture control."
}
],
"authority": "Capture observes Unity scene projection only; provider state, command acceptance, and receipts stay provider-owned.",
"publishProof": "Unity scene screenshot or frame-capture PNG artifact is attached to the runtime conformance report from EveUnity."
},
"evidencePaths": [
"scripts/build-capture-request.ps1",
"scripts/run-playmode-capture.ps1",
"ReleaseConsumerProject/Assets/Tests/PlayMode/GenericWorldCaptureTests.cs",
"scripts/run-aetheria-daemon-world-witness.ps1",
"conformance/captures/aetheria-daemon/aetheria-daemon-world.png"
],
"pendingProofs": [
]
}
},
"capture": {
"status": "released-aetheria-playmode-capture",
"note": "The released generic EveUnity client discovers and captures the separately running Aetheria daemon world.",
"artifacts": [
{
"kind": "png",
"schema": "gamecult.eve.runtime_frame_capture.v1",
"path": "conformance/captures/world-smoke/world-smoke.png",
"providerId": "eve.world-smoke",
"surfaceId": "eve.world-smoke.surface"
},
{
"kind": "png",
"schema": "gamecult.eve.runtime_frame_capture.v1",
"path": "conformance/captures/aetheria-daemon/aetheria-daemon-world.png",
"providerId": "aetheria.daemon",
"surfaceId": "aetheria.game"
}
]
}
}