Clarify nested plugin composition

This commit is contained in:
Meta Vens 2026-07-09 11:41:41 +01:00
commit e9d2a83fa9
4 changed files with 21 additions and 7 deletions

View file

@ -657,9 +657,9 @@ Recently cut:
conformance consumer can assert plugin ABI operations and capabilities with
`--expect-plugin-operation` and `--expect-plugin-capability`, and the export
now carries plugin manifest paths, advertisement paths, split targets,
graduation triggers, and optional plugin dependencies. Sai and Norn can prove
the plugin contract from the conformance export without reading Eve's parity
manifest.
graduation triggers, and optional nested composition claims. Sai and Norn can
prove the plugin contract from the conformance export without reading Eve's
parity manifest.
- EveUnity now has a split lifecycle smoke at
`scripts/run-eveunity-lifecycle-smoke.ps1`. It validates the existing
`packages/org.gamecult.eve.unity-uitoolkit/eve-runtime-capability.json`

View file

@ -429,8 +429,8 @@ Sai plugin responsibilities:
- define visual manifest schema as Eve-facing representation input;
- provide slots for embedded surfaces inside VN scenes without owning the
embedded surface semantics;
- declare optional plugin dependencies such as Norn graph and TeX math when a
scene embeds those documents;
- declare optional nested composition slots such as Norn graph and TeX math
when a scene embeds those documents;
- provide fixtures for Eve parity;
- provide a web/static-site reference implementation.
@ -472,7 +472,7 @@ TeX plugin responsibilities:
- define fallback and capability-gap behavior when a renderer cannot typeset;
- provide inline, block, and scene-placed math fixtures for Eve parity.
Sai may declare optional dependencies:
Sai may advertise optional nested composition slots:
```json
{
@ -480,6 +480,7 @@ Sai may declare optional dependencies:
"optionalPlugins": [
{
"pluginId": "norn.graph",
"relationship": "optional-nested-composition",
"capabilities": [
"embed.norn",
"graph.node.activate"
@ -487,6 +488,7 @@ Sai may declare optional dependencies:
},
{
"pluginId": "tex.math",
"relationship": "optional-nested-composition",
"capabilities": [
"embed.tex",
"tex.inline",
@ -616,7 +618,7 @@ For Sai VN:
- choice command fixture;
- continue command fixture;
- visual manifest asset fixture;
- embedded surface slot fixture with optional Norn/TeX plugin dependencies;
- embedded surface slot fixture with optional Norn/TeX composition slots;
- degraded renderer fixture for clients without scene placement;
- receipt round-trip fixture driven by a fake provider.
- ABI fixture proving `describe`, `validate`, `project`, `lower`, `measure`,

View file

@ -76,6 +76,8 @@
"optionalPlugins": [
{
"pluginId": "norn.graph",
"relationship": "optional-nested-composition",
"authority": "Sai can place an embed.norn surface when norn.graph is available; Norn remains the independent graph plugin owner and Sai must not import graph internals.",
"capabilities": [
"embed.norn",
"graph.node.activate"
@ -83,6 +85,8 @@
},
{
"pluginId": "tex.math",
"relationship": "optional-nested-composition",
"authority": "Sai can place an embed.tex surface when tex.math is available; TeX remains the independent math plugin owner and Sai must not import TeX internals.",
"capabilities": [
"embed.tex",
"tex.inline",

View file

@ -252,6 +252,14 @@
"type": "string",
"minLength": 1
},
"relationship": {
"type": "string",
"minLength": 1
},
"authority": {
"type": "string",
"minLength": 1
},
"capabilities": {
"type": "array",
"items": {