Graduate fields plugin runtime contract

This commit is contained in:
Meta Vens 2026-07-10 16:01:41 +01:00
commit 97bbbcdc61
3 changed files with 16 additions and 1 deletions

View file

@ -2,7 +2,7 @@
"schema": "gamecult.eve.plugin_advertisement.v1", "schema": "gamecult.eve.plugin_advertisement.v1",
"pluginId": "fields.surface", "pluginId": "fields.surface",
"ownerService": "eveplugins", "ownerService": "eveplugins",
"version": "0.1.0", "version": "0.1.1",
"manifestAddress": "file://plugins/eve-plugin-fields/plugin.json", "manifestAddress": "file://plugins/eve-plugin-fields/plugin.json",
"runtime": { "runtime": {
"invocationModel": "executable-sidecar", "invocationModel": "executable-sidecar",

View file

@ -4,11 +4,20 @@
"title": "Semantic Fields", "title": "Semantic Fields",
"owner": "EvePlugins", "owner": "EvePlugins",
"incubation": { "incubation": {
"status": "graduated",
"ownerRepo": "EvePlugins", "ownerRepo": "EvePlugins",
"currentHostRepo": "EvePlugins", "currentHostRepo": "EvePlugins",
"splitTarget": "EvePlugins/eve-plugin-fields", "splitTarget": "EvePlugins/eve-plugin-fields",
"graduationTrigger": "Split when field schemas, sidecar witness, and two runtime adapters are stable." "graduationTrigger": "Split when field schemas, sidecar witness, and two runtime adapters are stable."
}, },
"graduation": {
"status": "graduated",
"runtimeAdapters": ["web-reference", "unity-scene"],
"evidence": [
"artifacts/fields-surface/runtime-witness.json",
"EveUnity/artifacts/fields-surface/latest/unity-fields.png"
]
},
"componentKinds": ["field.surface2d", "gravity.surface"], "componentKinds": ["field.surface2d", "gravity.surface"],
"commands": [], "commands": [],
"runtime": { "runtime": {

View file

@ -51,3 +51,9 @@ test("publishes a runtime-neutral Unity contract package", () => {
assert.doesNotMatch(contracts, /UnityEngine|Aetheria|MessagePack|GameCult\.Caching/); assert.doesNotMatch(contracts, /UnityEngine|Aetheria|MessagePack|GameCult\.Caching/);
assert.match(readFileSync(new URL("../GameCult.Eve.PluginFields.csproj", import.meta.url), "utf8"), /netstandard2\.1/); assert.match(readFileSync(new URL("../GameCult.Eve.PluginFields.csproj", import.meta.url), "utf8"), /netstandard2\.1/);
}); });
test("records fields plugin graduation after two native runtime proofs", () => {
const manifest = JSON.parse(readFileSync(new URL("../plugin.json", import.meta.url), "utf8"));
assert.equal(manifest.graduation.status, "graduated");
assert.deepEqual(manifest.graduation.runtimeAdapters, ["web-reference", "unity-scene"]);
});