Sai/plugins/sai-vn.plugin.json
2026-07-10 11:31:15 +01:00

41 lines
2 KiB
JSON

{
"schema": "gamecult.eve.plugin.v1",
"pluginId": "sai.vn",
"title": "Sai Visual Novel",
"owner": "Sai",
"componentKinds": ["vn.stage", "panel.dialogue", "text.dialogue", "rail.actions"],
"commands": [
{ "command": "story.continue", "schema": "sai.vn.story_command.v1", "effect": "advance-story" },
{ "command": "story.choose", "schema": "sai.vn.story_command.v1", "effect": "choose-branch" },
{ "command": "story.jump", "schema": "sai.vn.story_command.v1", "effect": "jump-to-knot" }
],
"runtime": {
"invocationModel": "executable-sidecar",
"contract": "gamecult.eve.plugin_abi.v1",
"transports": ["cultnet-rudp", "stdio"],
"authority": ["renderer-independent", "no-provider-state-mutation", "provider-accepts-or-denies-commands"],
"sidecar": {
"processKind": "long-running-daemon",
"protocol": "cultnet-operation-v0",
"debugProtocol": "stdio-ndjson",
"requestSchema": "gamecult.eve.plugin_abi.request.v1",
"responseSchema": "gamecult.eve.plugin_abi.response.v1",
"operations": ["describe", "validate", "open", "apply", "project", "jump"],
"commandEnvelope": "gamecult.eve.command_invocation.v1",
"receiptSchema": "gamecult.eve.command_receipt.v1",
"stateAuthority": "sai-sidecar-owns-story-session-provider-owns-command-acceptance"
}
},
"stateSchemas": ["sai.vn.story_session.v1", "sai.vn.visual_manifest.v1"],
"fixtures": [
{ "fixtureId": "sai-vn", "schema": "gamecult.eve.surface.v1", "path": "examples/static-site/story.ink.json" }
],
"abiFixtures": ["plugins/sai-vn.plugin-abi-fixture.json"],
"capabilities": {
"requires": ["vn.stage", "story.choose", "story.continue", "story.jump"],
"optionalPlugins": [
{ "pluginId": "norn.graph", "relationship": "optional-nested-composition", "capabilities": ["embed.norn", "graph.node.activate"] },
{ "pluginId": "tex.math", "relationship": "optional-nested-composition", "capabilities": ["embed.tex", "tex.inline", "tex.block"] }
]
}
}