Thing/plugins/incubating/norn-graph.plugin.json
2026-07-09 10:59:31 +01:00

74 lines
2.1 KiB
JSON

{
"schema": "gamecult.eve.plugin.v1",
"pluginId": "norn.graph",
"title": "Norn Graph",
"owner": "Norn",
"incubation": {
"ownerRepo": "Norn",
"currentHostRepo": "Eve",
"splitTarget": "Norn/eve-plugin-graph",
"graduationTrigger": "Split when graph layout, interaction, fallback, and conformance fixtures are stable."
},
"componentKinds": [
"embed.norn"
],
"commands": [
{
"command": "graph.node.activate",
"schema": "norn.graph.command.v1",
"effect": "activate-node"
},
{
"command": "graph.focus",
"schema": "norn.graph.command.v1",
"effect": "focus-graph"
}
],
"runtime": {
"invocationModel": "executable-sidecar",
"contract": "gamecult.eve.plugin_abi.v1",
"transports": ["cultmesh", "stdio"],
"authority": [
"renderer-independent",
"no-provider-state-mutation",
"provider-accepts-or-denies-commands"
],
"sidecar": {
"processKind": "long-running-daemon",
"protocol": "cultmesh-rpc-with-stdio-dev-transport",
"requestSchema": "gamecult.eve.plugin_abi.request.v1",
"responseSchema": "gamecult.eve.plugin_abi.response.v1",
"operations": ["describe", "validate", "project", "lower", "measure", "apply"],
"commandEnvelope": "gamecult.eve.command.v1",
"receiptSchema": "gamecult.eve.command_receipt.v1",
"stateAuthority": "proposes-plugin-state-only-provider-accepts"
}
},
"stateSchemas": [
"norn.graph.document.v1",
"norn.graph.layout_request.v1",
"norn.graph.layout_result.v1"
],
"fixtures": [
{
"fixtureId": "sai-vn",
"schema": "gamecult.eve.surface.v1",
"path": "web/fixtures/sai-vn-surface.json",
"role": "optional-nested-placement-evidence",
"authority": "Norn semantics remain plugin-owned; the Sai fixture only proves a surface can nest embed.norn when norn.graph is available."
}
],
"abiFixtures": [
"plugins/incubating/norn-graph.plugin-abi-fixture.json"
],
"capabilities": {
"requires": [
"embed.norn"
],
"optionalCapabilities": [
"graph.node.activate",
"graph.pan",
"graph.zoom"
]
}
}