252 lines
12 KiB
JSON
252 lines
12 KiB
JSON
{
|
|
"schema": "gamecult.eve.runtime_capability.v1",
|
|
"runtimeId": "unity-uitoolkit",
|
|
"title": "Unity / UI Toolkit",
|
|
"owner": "EveUnity",
|
|
"incubation": {
|
|
"ownerRepo": "EveUnity",
|
|
"currentHostRepo": "Eve",
|
|
"splitTarget": "EveUnity",
|
|
"graduationTrigger": "Split when Unity package has independent UPM release, plugin projection adapter behavior, and Unity test/capture lifecycle.",
|
|
"splitHandoff": {
|
|
"manifestPath": "packages/org.gamecult.eve.unity-uitoolkit/eveunity-split-handoff.json",
|
|
"smokeCommand": "powershell -ExecutionPolicy Bypass -File .\\scripts\\run-eveunity-split-handoff-smoke.ps1"
|
|
}
|
|
},
|
|
"supportedFeatures": [
|
|
"embeddedDocuments"
|
|
],
|
|
"supportedPlugins": [
|
|
{
|
|
"pluginId": "sai.vn",
|
|
"capabilities": [
|
|
"vn.stage",
|
|
"story.choose",
|
|
"story.continue",
|
|
"story.jump"
|
|
],
|
|
"projectionAdapter": "SaiVisualNovelUiToolkitProjectionAdapter"
|
|
},
|
|
{
|
|
"pluginId": "norn.graph",
|
|
"capabilities": [
|
|
"embed.norn"
|
|
],
|
|
"projectionAdapter": "NornGraphUiToolkitProjectionAdapter"
|
|
},
|
|
{
|
|
"pluginId": "tex.math",
|
|
"capabilities": [
|
|
"embed.tex",
|
|
"tex.inline",
|
|
"tex.block"
|
|
],
|
|
"projectionAdapter": "TeXMathUiToolkitProjectionAdapter"
|
|
}
|
|
],
|
|
"unsupportedPlugins": [],
|
|
"commandTransport": {
|
|
"schema": "gamecult.eve.command.v1",
|
|
"emitter": "EveUiToolkitSurfaceLowerer.EmitCommand",
|
|
"clientId": "unity-uitoolkit"
|
|
},
|
|
"worldSurfaceLowering": [
|
|
{
|
|
"targetId": "unity-uitoolkit",
|
|
"surfaceKinds": ["interactive-world", "interactive-world-editor"],
|
|
"projectionKinds": ["provider-authored-world-surface", "provider-authored-world-editor-surface"],
|
|
"supportLevel": "ui-toolkit-semantic-command-surface",
|
|
"ownership": "runtime-lowers-provider-world-surface-without-owning-world-state",
|
|
"evidencePaths": [
|
|
"packages/org.gamecult.eve.unity-uitoolkit/Runtime/EveUiToolkitSurfaceLowerer.cs",
|
|
"packages/org.gamecult.eve.unity-uitoolkit/Runtime/TeXMathUiToolkitProjectionAdapter.cs",
|
|
"packages/org.gamecult.eve.unity-uitoolkit/Tests/Editor/EveUiToolkitSurfaceLowererTests.cs",
|
|
"web/fixtures/aetheria.provider-advertisement.json",
|
|
"web/fixtures/eve-world-smoke.provider-advertisement.json"
|
|
]
|
|
}
|
|
],
|
|
"lifecycle": {
|
|
"release": {
|
|
"ownerRepo": "EveUnity",
|
|
"status": "upm-package-artifact-smoke",
|
|
"packageName": "org.gamecult.eve.unity-uitoolkit",
|
|
"packageManifest": "packages/org.gamecult.eve.unity-uitoolkit/package.json",
|
|
"releaseContract": {
|
|
"ownerRepo": "EveUnity",
|
|
"packageName": "org.gamecult.eve.unity-uitoolkit",
|
|
"packageRoot": "packages/org.gamecult.eve.unity-uitoolkit",
|
|
"versionSource": "packages/org.gamecult.eve.unity-uitoolkit/package.json",
|
|
"tagPattern": "eveunity-uitoolkit-v{version}",
|
|
"artifactKind": "upm-package",
|
|
"requestSchema": "gamecult.eve.runtime_release_request.v1",
|
|
"requestBuilder": "tools/eveunity/eveunity-release-contract.mjs",
|
|
"artifactBuilder": "tools/eveunity/eveunity-release-artifact.mjs",
|
|
"artifactPattern": "artifacts/eveunity-uitoolkit-release/{version}/org.gamecult.eve.unity-uitoolkit-{version}.tgz",
|
|
"publishProof": "Tagged UPM release is created from the EveUnity repo and references this package root.",
|
|
"requiredPackageDependencies": [
|
|
{
|
|
"packageName": "org.gamecult.eve.surface",
|
|
"version": "0.1.0",
|
|
"packageManager": "upm",
|
|
"ownerRepo": "Eve",
|
|
"purpose": "Shared Unity DTOs for gamecult.eve.surface.v1 documents."
|
|
}
|
|
]
|
|
},
|
|
"evidencePaths": [
|
|
"packages/org.gamecult.eve.unity-uitoolkit/package.json",
|
|
"packages/org.gamecult.eve.unity-uitoolkit/README.md",
|
|
"tools/eveunity/eveunity-release-contract.mjs",
|
|
"tools/eveunity/eveunity-release-contract.test.mjs",
|
|
"tools/eveunity/eveunity-release-artifact.mjs",
|
|
"tools/eveunity/eveunity-release-artifact.test.mjs",
|
|
"scripts/run-eveunity-release-contract-smoke.ps1",
|
|
"scripts/run-eveunity-release-artifact-smoke.ps1",
|
|
"scripts/run-aetheria-unity-package-smoke.ps1"
|
|
],
|
|
"pendingProofs": [
|
|
"Tagged UPM release cut from EveUnity rather than Eve incubation."
|
|
]
|
|
},
|
|
"test": {
|
|
"ownerRepo": "EveUnity",
|
|
"status": "batchmode-editmode-tests-and-consumer-build-smoke",
|
|
"command": "powershell -ExecutionPolicy Bypass -File .\\scripts\\run-aetheria-unity-editmode-tests.ps1",
|
|
"testContract": {
|
|
"ownerRepo": "EveUnity",
|
|
"runnerKind": "unity-editmode-batchmode",
|
|
"runnerScript": "scripts/run-aetheria-unity-editmode-tests.ps1",
|
|
"consumerProject": "E:\\Projects\\Aetheria",
|
|
"unityExeDefault": "C:\\Program Files\\Unity\\Hub\\Editor\\6000.4.2f1\\Editor\\Unity.exe",
|
|
"packageName": "org.gamecult.eve.unity-uitoolkit",
|
|
"testAssembly": "GameCult.Eve.UnityUIToolkit.Tests",
|
|
"testPlatform": "EditMode",
|
|
"resultsArtifact": "artifacts/aetheria-unity-editmode/{stamp}/unity-editmode-results.xml",
|
|
"logArtifact": "artifacts/aetheria-unity-editmode/{stamp}/unity-editmode.log",
|
|
"manifestMutation": "Temporarily adds org.gamecult.eve.unity-uitoolkit to Aetheria Packages/manifest.json testables and restores the manifest after the run.",
|
|
"managedAssemblyDependencies": [
|
|
{
|
|
"assemblyName": "GameCult.Caching.dll",
|
|
"packageId": "GameCult.Caching",
|
|
"packageManager": "nuget",
|
|
"ownerRepo": "CultLib",
|
|
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
|
"dependencyContract": {
|
|
"sourceAuthority": "CultLib",
|
|
"packageSource": "nuget",
|
|
"packageId": "GameCult.Caching",
|
|
"assemblyName": "GameCult.Caching.dll",
|
|
"versionPolicy": "CultLib-owned package version stream.",
|
|
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
|
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
|
}
|
|
},
|
|
{
|
|
"assemblyName": "GameCult.Mesh.dll",
|
|
"packageId": "GameCult.Mesh",
|
|
"packageManager": "nuget",
|
|
"ownerRepo": "CultLib",
|
|
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
|
"dependencyContract": {
|
|
"sourceAuthority": "CultLib",
|
|
"packageSource": "nuget",
|
|
"packageId": "GameCult.Mesh",
|
|
"assemblyName": "GameCult.Mesh.dll",
|
|
"versionPolicy": "CultLib-owned package version stream.",
|
|
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
|
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
|
}
|
|
},
|
|
{
|
|
"assemblyName": "MessagePack.Annotations.dll",
|
|
"packageId": "MessagePack.Annotations",
|
|
"packageManager": "nuget",
|
|
"ownerRepo": "CultLib",
|
|
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
|
"dependencyContract": {
|
|
"sourceAuthority": "CultLib",
|
|
"packageSource": "nuget",
|
|
"packageId": "MessagePack.Annotations",
|
|
"assemblyName": "MessagePack.Annotations.dll",
|
|
"versionPolicy": "CultLib-owned transitive package version stream.",
|
|
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
|
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"evidencePaths": [
|
|
"packages/org.gamecult.eve.unity-uitoolkit/Tests/Editor/GameCult.Eve.UnityUIToolkit.Tests.asmdef",
|
|
"packages/org.gamecult.eve.unity-uitoolkit/Tests/Editor/EveUiToolkitSurfaceLowererTests.cs",
|
|
"scripts/run-aetheria-unity-editmode-tests.ps1",
|
|
"scripts/run-aetheria-unity-package-smoke.ps1",
|
|
"scripts/run-eveunity-split-handoff-smoke.ps1",
|
|
"packages/org.gamecult.eve.unity-uitoolkit/eveunity-split-handoff.json"
|
|
],
|
|
"pendingProofs": [
|
|
"Unity batchmode EditMode runner is owned by EveUnity rather than Eve incubation."
|
|
]
|
|
},
|
|
"capture": {
|
|
"ownerRepo": "EveUnity",
|
|
"status": "pending-editor-capture",
|
|
"captureContract": {
|
|
"ownerRepo": "EveUnity",
|
|
"runtimeId": "unity-uitoolkit",
|
|
"targetId": "unity-uitoolkit",
|
|
"requestSchema": "gamecult.eve.runtime_capture_request.v1",
|
|
"requestBuilder": "tools/eveunity/eveunity-capture-contract.mjs",
|
|
"advertisementPath": "web/fixtures/aetheria.provider-advertisement.json",
|
|
"captureKind": "unity-editor-or-batchmode-png",
|
|
"artifactKind": "png",
|
|
"artifactPattern": "artifacts/eveunity-uitoolkit-capture/{stamp}/unity-uitoolkit.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."
|
|
},
|
|
{
|
|
"providerId": "aetheria",
|
|
"surfaceId": "aetheria.daemon.editor",
|
|
"purpose": "Aetheria interactive-world-editor capture control."
|
|
}
|
|
],
|
|
"authority": "Capture observes runtime projection only; provider state, command acceptance, and receipts stay provider-owned.",
|
|
"publishProof": "Unity editor or batchmode capture artifact is attached to the runtime conformance report from EveUnity."
|
|
},
|
|
"evidencePaths": [
|
|
"tools/eveunity/eveunity-capture-contract.mjs",
|
|
"tools/eveunity/eveunity-capture-contract.test.mjs",
|
|
"scripts/run-eveunity-capture-contract-smoke.ps1",
|
|
"tools/eveunity/eveunity-uitoolkit-capture-artifact.mjs",
|
|
"tools/eveunity/eveunity-uitoolkit-capture-artifact.test.mjs",
|
|
"scripts/run-eveunity-uitoolkit-capture-smoke.ps1",
|
|
"web/fixtures/aetheria.provider-advertisement.json"
|
|
],
|
|
"pendingProofs": [
|
|
"Unity batchmode or editor capture artifact attached to the runtime conformance report."
|
|
]
|
|
}
|
|
},
|
|
"capture": {
|
|
"status": "json-projection",
|
|
"note": "Unity UI Toolkit attaches a provider-advertisement-backed gamecult.eve.unity_uitoolkit_projection.v1 JSON projection artifact; Unity editor or batchmode PNG capture remains an EveUnity split blocker.",
|
|
"artifacts": [
|
|
{
|
|
"kind": "json-projection",
|
|
"schema": "gamecult.eve.unity_uitoolkit_projection.v1",
|
|
"path": "artifacts/eveunity-uitoolkit-capture/latest/unity-uitoolkit-projection.json",
|
|
"runtimeId": "unity-uitoolkit",
|
|
"providerId": "aetheria",
|
|
"surfaceId": "aetheria.daemon.game",
|
|
"sourceSurfacePath": "web/fixtures/aetheria-world-surface.json",
|
|
"requestPath": "artifacts/eveunity-uitoolkit-capture/latest/capture-request.json"
|
|
}
|
|
]
|
|
}
|
|
}
|