From 73ba02c7b2f4b8cb9b308d32fe6a8fbafa1c8aee Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Fri, 10 Jul 2026 14:50:52 +0100 Subject: [PATCH] Assign field semantics to plugin owner --- docs/eve-migration-roadmap.md | 8 ++++++++ docs/plugin-architecture.md | 10 ++++++++++ scripts/run-eveplugins-owner-smoke.ps1 | 8 +++++++- scripts/run-parity-harness.ps1 | 3 +++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/docs/eve-migration-roadmap.md b/docs/eve-migration-roadmap.md index 91f1bf4..6d5b296 100644 --- a/docs/eve-migration-roadmap.md +++ b/docs/eve-migration-roadmap.md @@ -107,6 +107,10 @@ advertisements and typed command/receipt documents are the boundary. RUDP operation envelopes. A Sai surface may request nested Norn or TeX capabilities when those plugins are available. - EvePlugins owns the TeX sidecar and KaTeX-backed semantic witness. +- EvePlugins owns the independent `fields.surface` sidecar, generic + `gamecult.fields.*` document model, fixtures, tests, and CultNet witness. + Aetheria remains owner of sampled field truth; runtimes remain owners of + native field projection. - The TeX owner sidecar serves its Eve ABI over CultNet RUDP operation envelopes; its stdio protocol is retained only as a local debug adapter. - Aetheria owns its provider advertisement, world surface, scenario, asset @@ -151,6 +155,10 @@ advertisements and typed command/receipt documents are the boundary. is its semantic owner. Sai already owns VN/Ink execution and its live witness. - Keep nested plugin availability explicit and non-transitive: Sai does not own Norn or TeX. +- Migrate Aetheria viewport publications from `gamecult.aetheria.*_viewport` + arrays to the `fields.surface` document model, then delete the Aetheria schema + decoders from Hermodr and move browser field projection behind a runtime + adapter for the advertised plugin. ### Conformance diff --git a/docs/plugin-architecture.md b/docs/plugin-architecture.md index 29ded06..097d822 100644 --- a/docs/plugin-architecture.md +++ b/docs/plugin-architecture.md @@ -467,6 +467,16 @@ Sai surface deploys with nested Norn or TeX, Sai composes the slots and keeps VN stage authority; Norn and TeX still publish and validate their own semantic contracts. Each plugin advertises only the ABI operations it actually owns. +### Semantic Fields + +`fields.surface` owns `field.surface2d` and `gravity.surface` semantics plus the +generic `gamecult.fields.*` document family. Providers own sampled scalar, +vector, color, mask, and object documents. The plugin validates and projects +those documents through the executable ABI; browser, Unity, and other runtimes +own native canvas, shader, texture, or scene projection. A provider-specific +field schema or array layout is not Eve core and must not be decoded inside a +generic runtime transport. + The carrier does not define the plugin. UTF-8 NDJSON over stdio remains a local debug adapter: one request document per line, one response per request in order, blank lines ignored, diagnostics on stderr. The production sidecar path diff --git a/scripts/run-eveplugins-owner-smoke.ps1 b/scripts/run-eveplugins-owner-smoke.ps1 index 568f05b..18ae611 100644 --- a/scripts/run-eveplugins-owner-smoke.ps1 +++ b/scripts/run-eveplugins-owner-smoke.ps1 @@ -7,6 +7,10 @@ $requiredPaths = @( "plugins\eve-plugin-tex\advertisement.json", "plugins\eve-plugin-tex\plugin-abi-fixture.json", "plugins\eve-plugin-tex\src\sidecar.mjs", + "plugins\eve-plugin-fields\plugin.json", + "plugins\eve-plugin-fields\advertisement.json", + "plugins\eve-plugin-fields\plugin-abi-fixture.json", + "plugins\eve-plugin-fields\src\sidecar.mjs", "scripts\run-tex-witness.mjs" ) @@ -23,8 +27,10 @@ try { if ($LASTEXITCODE -ne 0) { throw "EvePlugins tests failed." } npm run witness:tex if ($LASTEXITCODE -ne 0) { throw "EvePlugins TeX witness failed." } + npm run witness:fields + if ($LASTEXITCODE -ne 0) { throw "EvePlugins fields witness failed." } } finally { Pop-Location } -Write-Host "EvePlugins TeX owner smoke passed: $EvePluginsRoot" +Write-Host "EvePlugins TeX and fields owner smoke passed: $EvePluginsRoot" diff --git a/scripts/run-parity-harness.ps1 b/scripts/run-parity-harness.ps1 index e86b21d..8773bc7 100644 --- a/scripts/run-parity-harness.ps1 +++ b/scripts/run-parity-harness.ps1 @@ -62,6 +62,9 @@ try { node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") ` "E:\Projects\EvePlugins\artifacts\tex-math\runtime-witness.json" ` ".\artifacts\conformance\latest" + node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") ` + "E:\Projects\EvePlugins\artifacts\fields-surface\runtime-witness.json" ` + ".\artifacts\conformance\latest" node (Join-Path $conformanceRoot "tools\conformance\attach-plugin-witness.mjs") ` "E:\Projects\Sai\artifacts\eve-plugin\runtime-witness.json" ` ".\artifacts\conformance\latest"