diff --git a/plugins/eve-plugin-fields/advertisement.json b/plugins/eve-plugin-fields/advertisement.json index 7cf626e..08a999b 100644 --- a/plugins/eve-plugin-fields/advertisement.json +++ b/plugins/eve-plugin-fields/advertisement.json @@ -2,7 +2,7 @@ "schema": "gamecult.eve.plugin_advertisement.v1", "pluginId": "fields.surface", "ownerService": "eveplugins", - "version": "0.1.0", + "version": "0.1.1", "manifestAddress": "file://plugins/eve-plugin-fields/plugin.json", "runtime": { "invocationModel": "executable-sidecar", diff --git a/plugins/eve-plugin-fields/plugin.json b/plugins/eve-plugin-fields/plugin.json index 6dfa5f8..d178460 100644 --- a/plugins/eve-plugin-fields/plugin.json +++ b/plugins/eve-plugin-fields/plugin.json @@ -4,11 +4,20 @@ "title": "Semantic Fields", "owner": "EvePlugins", "incubation": { + "status": "graduated", "ownerRepo": "EvePlugins", "currentHostRepo": "EvePlugins", "splitTarget": "EvePlugins/eve-plugin-fields", "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"], "commands": [], "runtime": { diff --git a/plugins/eve-plugin-fields/test/plugin.test.mjs b/plugins/eve-plugin-fields/test/plugin.test.mjs index 6eacf41..b1d1c27 100644 --- a/plugins/eve-plugin-fields/test/plugin.test.mjs +++ b/plugins/eve-plugin-fields/test/plugin.test.mjs @@ -51,3 +51,9 @@ test("publishes a runtime-neutral Unity contract package", () => { assert.doesNotMatch(contracts, /UnityEngine|Aetheria|MessagePack|GameCult\.Caching/); 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"]); +});