{ "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": ["stdio"], "authority": ["renderer-independent", "no-provider-state-mutation", "provider-accepts-or-denies-commands"], "sidecar": { "processKind": "long-running-daemon", "protocol": "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"] } ] } }