Clarify nested plugin projection authority

This commit is contained in:
Meta Vens 2026-07-09 12:32:05 +01:00
commit 0462cacadc
8 changed files with 40 additions and 29 deletions

View file

@ -149,10 +149,10 @@ this plugin yet" from "plugin semantics belong in Eve core." Consumer smokes can
assert them with `--expect-runtime-plugin-gap <runtimeId:pluginId:ownerRepo>`.
The same claims are exported as `runtimePluginProjectionCoverage[]`, including
positive `supported` projection adapters and declared `unsupported` gaps. This
lets runtime and plugin owners consume one ledger for "Unity UI Toolkit supports
Sai/Norn projection" and "Unity scene/Electron do not have generic plugin
projection yet" instead of walking nested runtime records. Consumer smokes can
assert entries with
lets runtime and plugin owners consume one ledger for "Unity UI Toolkit has
projection adapters for Sai/Norn sidecar-advertised output" and "Unity
scene/Electron do not have generic plugin projection yet" instead of walking
nested runtime records. Consumer smokes can assert entries with
`--expect-runtime-plugin-projection <runtimeId:pluginId:status:ownerRepo>`.
Provider surface plugin requirements are also joined with runtime projection
support as `providerRuntimePluginProjectionCoverage[]`. These records answer
@ -186,8 +186,9 @@ id, plugin id, plugin owner, plugin status, availability, required
capabilities, optional capabilities, and missing capabilities so provider and
plugin owners can consume requirement coverage without reconstructing the
provider/plugin join. `availability: optional-nested` means the parent surface
can host that independent plugin when available; it is not a parent-plugin
dependency. Consumer smokes can assert them with
can compose that independent plugin when available; it is not a parent-plugin
dependency and it does not move nested semantics into the parent plugin.
Consumer smokes can assert them with
`--expect-provider-plugin-requirement <providerId:surfaceId:pluginId:status:pluginOwnerRepo[:availability]>`.
Plugin-owner smokes should use the optional availability field when proving that
Sai's required VN plugin is distinct from optional nested Norn or TeX surfaces.

View file

@ -452,6 +452,13 @@ scene, but ownership stays with their plugins. Each plugin publishes a
renderer-independent sidecar ABI; runtimes only declare whether they can project
that plugin's advertised capabilities.
Runtime projection support is not plugin hosting. A Unity, Electron, Flutter,
TUI, or web client may provide an adapter for sidecar-advertised Norn or TeX
output, but the sidecar daemon and plugin ABI remain runtime independent. If a
Sai surface deploys with nested Norn or TeX, Sai composes the slots and keeps VN
stage authority; Norn and TeX still publish, validate, lower, and receive
commands through their own plugin contracts.
Norn plugin responsibilities:
- define `embed.norn` semantics;
@ -572,7 +579,8 @@ Renderer clients own projection:
- Unity UI Toolkit may lower the same surface as a native 2D UI document.
- Unity full-scene renderer may place dialogue in world space or cinematic
scene space.
- Godot may lower the same plugin semantics into Godot controls or scene nodes.
- Godot may lower the same plugin-advertised surface into Godot controls or
scene nodes.
The shared command path:

View file

@ -38,8 +38,10 @@ Anything else is guilty until it can explain why it protects a core invariant.
- `Sai`: owner for the VN/Ink plugin once `sai.vn` graduates.
- `Norn`: owner for graph plugin semantics once `norn.graph` graduates.
- `EveUnity`, `EveGodot`, `EveFlutter`, `EveElectron`, and similar runtime
repos: native projection, platform build glue, plugin projection adapters, captures, and
runtime tests.
repos: native projection, platform build glue, plugin projection adapters,
captures, and runtime tests. Runtime plugin projection adapters lower
sidecar-advertised output; they do not host Sai, Norn, TeX, or any other
plugin's semantic authority.
- `EveConformance`: fixture corpus, parity runner, capability matrix,
screenshot/report artifacts, plugin packs, and CI orchestration once the
harness stops thrashing.

View file

@ -38,7 +38,7 @@
"unsupportedPlugins": [
{
"pluginId": "tex.math",
"reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no TeX projection adapter exists in this runtime."
"reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no adapter exists for the TeX sidecar-advertised projection in this runtime."
}
],
"commandTransport": {

View file

@ -22,15 +22,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "Electron provider-shell skeleton exists, but no Sai projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "Electron provider-shell skeleton exists, but no Norn graph projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "Electron provider-shell skeleton exists, but no TeX projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [

View file

@ -23,15 +23,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "TUI provider-shell skeleton exists, but no Sai terminal projection adapter exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "TUI provider-shell skeleton exists, but no Norn graph terminal fallback exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "TUI provider-shell skeleton exists, but no TeX terminal fallback exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [

View file

@ -22,15 +22,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "Unity scene graph projection exists, but no Sai VN scene projection adapter for sidecar-advertised capabilities exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "Unity scene graph projection exists, but no Norn graph scene-space or UI overlay adapter exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "Unity scene graph projection exists, but no TeX scene-space or UI overlay adapter exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [

View file

@ -741,15 +741,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "Electron provider-shell skeleton exists, but no Sai projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "Electron provider-shell skeleton exists, but no Norn graph projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "Electron provider-shell skeleton exists, but no TeX projection adapter exists in this runtime."
"reason": "Electron provider-shell skeleton exists, but no adapter exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [
@ -832,15 +832,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "TUI provider-shell skeleton exists, but no Sai terminal projection adapter exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "TUI provider-shell skeleton exists, but no Norn graph terminal fallback exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "TUI provider-shell skeleton exists, but no TeX terminal fallback exists in this runtime."
"reason": "TUI provider-shell skeleton exists, but no terminal fallback exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [
@ -925,15 +925,15 @@
"unsupportedPlugins": [
{
"pluginId": "sai.vn",
"reason": "Unity scene graph projection exists, but no Sai VN scene projection adapter for sidecar-advertised capabilities exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene adapter exists for Sai sidecar-advertised VN projection in this runtime."
},
{
"pluginId": "norn.graph",
"reason": "Unity scene graph projection exists, but no Norn graph scene-space or UI overlay adapter exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for Norn sidecar-advertised graph projection in this runtime."
},
{
"pluginId": "tex.math",
"reason": "Unity scene graph projection exists, but no TeX scene-space or UI overlay adapter exists in this runtime."
"reason": "Unity scene graph projection exists, but no scene-space or UI overlay adapter exists for TeX sidecar-advertised math projection in this runtime."
}
],
"worldSurfaceLowering": [
@ -1401,7 +1401,7 @@
"unsupportedPlugins": [
{
"pluginId": "tex.math",
"reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no TeX projection adapter exists in this runtime."
"reason": "Unity UI Toolkit currently preserves embed.tex as generic Eve structure; no adapter exists for the TeX sidecar-advertised projection in this runtime."
}
],
"worldSurfaceLowering": [