Thing/plugins/incubating/norn-graph.plugin-abi-fixture.json
2026-07-09 11:33:42 +01:00

90 lines
2.9 KiB
JSON

{
"schema": "gamecult.eve.plugin_abi_fixture.v1",
"fixtureId": "norn-graph-plugin-abi",
"pluginId": "norn.graph",
"ownerRepo": "Norn",
"contract": "gamecult.eve.plugin_abi.v1",
"requestSchema": "gamecult.eve.plugin_abi.request.v1",
"responseSchema": "gamecult.eve.plugin_abi.response.v1",
"sourceFixture": "sai-vn",
"sourceFixtureRole": "optional-nested-placement-evidence",
"authority": "Norn owns graph semantics independently; the Sai fixture only proves a provider surface can nest embed.norn when norn.graph is available.",
"operations": [
{
"operation": "describe",
"input": {
"manifest": "plugins/incubating/norn-graph.plugin.json",
"advertisement": "plugins/incubating/norn-graph.plugin-advertisement.json"
},
"expect": {
"pluginId": "norn.graph",
"componentKinds": ["embed.norn"],
"commands": ["graph.node.activate", "graph.focus"],
"capabilities": ["embed.norn", "graph.node.activate"]
}
},
{
"operation": "validate",
"input": {
"surface": "web/fixtures/sai-vn-surface.json",
"componentKinds": ["embed.norn"]
},
"expect": {
"acceptedComponentKinds": ["embed.norn"],
"rejectedComponentKinds": ["embed.tex", "vn.stage"],
"requiredCapabilities": ["embed.norn"]
}
},
{
"operation": "project",
"input": {
"surface": "web/fixtures/sai-vn-surface.json",
"nodeKind": "embed.norn"
},
"expect": {
"projectionKind": "embedded-semantic-surface",
"ownedComponentKinds": ["embed.norn"],
"outputSchemas": ["norn.graph.document.v1", "norn.graph.layout_request.v1", "norn.graph.layout_result.v1"]
}
},
{
"operation": "lower",
"input": {
"projection": "embedded-semantic-surface",
"targetRuntimes": ["web", "unity-uitoolkit"],
"componentKinds": ["embed.norn"]
},
"expect": {
"loweringKind": "graph-viewport",
"preservedComponentKinds": ["embed.norn"],
"requiredSchemas": ["norn.graph.document.v1", "norn.graph.layout_result.v1"],
"commandEnvelope": "gamecult.eve.command.v1"
}
},
{
"operation": "measure",
"input": {
"projection": "embedded-semantic-surface",
"layoutRequestSchema": "norn.graph.layout_request.v1"
},
"expect": {
"measurementKind": "graph-layout-metrics",
"measurementOutputs": ["nodeBounds", "edgeRoutes", "viewportBounds"],
"preservesProviderAuthority": true
}
},
{
"operation": "apply",
"input": {
"commands": ["graph.node.activate", "graph.focus"]
},
"expect": {
"commandEffects": {
"graph.node.activate": "activate-node",
"graph.focus": "focus-graph"
},
"receiptSchema": "gamecult.eve.command_receipt.v1"
}
}
]
}