Thing/web/fixtures/sai-vn-surface.json
2026-07-10 16:10:43 +01:00

175 lines
5.2 KiB
JSON

{
"type": "surface-state",
"schema": "gamecult.eve.surface.v1",
"providerKind": "sai.visual_novel",
"providerId": "gamecult.home.vn",
"title": "GameCult Compound VN",
"version": 1,
"updatedAt": "2026-05-31T00:00:00.000Z",
"surface": {
"id": "sai.visual_novel.surface",
"styles": {
"themeId": "gamecult.vn",
"tokens": {
"colorBackground": "#05080d",
"colorPanel": "rgba(5, 8, 13, 0.92)",
"colorPanelAlt": "rgba(9, 14, 22, 0.82)",
"colorText": "#f6f1e2",
"colorMuted": "#b7c7d9",
"colorAccent": "#ff8a2a",
"colorLink": "#59b7ff",
"radiusPanel": 8,
"fontBody": "Ubuntu",
"fontTitle": "Montserrat",
"pixelArt": true,
"motion": "subtle"
},
"controls": [
{
"id": "theme.accent",
"kind": "color",
"label": "Accent",
"token": "colorAccent",
"command": "style.patch"
}
]
},
"root": {
"id": "sai.root",
"kind": "vn.stage",
"props": {
"mode": "visual-novel",
"storyId": "gamecult-compound",
"currentPath": "hub",
"style": "gamecult.vn"
},
"children": [
{
"id": "sai.background",
"kind": "image.background",
"props": {
"src": "/static/interactive/cotsc-praxis/backgrounds/compound.png",
"label": "Front Gate",
"fit": "cover",
"pixelArt": true
}
},
{
"id": "sai.graph",
"kind": "embed.norn",
"embeddedDocuments": [
{
"slotId": "graph",
"documentId": "cultmesh://norn/graphs/sai-nested-norn",
"schemaId": "norn.graph.document.v1",
"presentationKind": "embed.norn"
}
],
"props": {
"label": "GameCult Ink Knot Graph",
"pluginId": "norn.graph",
"capability": "embed.norn",
"interaction": {
"nodeAction": "story.jump",
"focusFollowsStory": true
},
"placement": {
"space": "scene",
"anchor": "whiteboard",
"mode": "keystone",
"quad": [[0.08, 0.10], [0.55, 0.06], [0.59, 0.52], [0.07, 0.58]],
"zIndex": 4
}
}
},
{
"id": "sai.embeds",
"kind": "layer.embedded-surfaces",
"children": [
{
"id": "sai.tex.log-power",
"kind": "embed.tex",
"props": {
"label": "Bifrost voting weight",
"source": "\\\\mathrm{votes}(p)=1+\\\\lfloor\\\\log_b(1+p)\\\\rfloor",
"format": "latex",
"display": "block",
"renderer": {
"web": "katex",
"native": "tex-renderer",
"direct2d": "tex-to-directwrite"
},
"placement": {
"space": "scene",
"anchor": "whiteboard-equation",
"mode": "keystone",
"quad": [[0.16, 0.60], [0.54, 0.57], [0.56, 0.70], [0.15, 0.73]],
"zIndex": 5
}
}
}
]
},
{
"id": "sai.cards",
"kind": "layer.cards",
"children": [
{
"id": "sai.card.projects",
"kind": "card.external",
"props": {
"key": "projects",
"title": "Project Atlas",
"selector": "#gamecult-vn-projects",
"mode": "provider-owned-fragment"
}
}
]
},
{
"id": "sai.dialogue",
"kind": "panel.dialogue",
"props": {
"speaker": "Void",
"text": "Pick a door. The map will keep accusing us of being real.",
"scene": "Front Gate"
},
"children": [
{
"id": "sai.dialogue.text",
"kind": "text.dialogue",
"props": {
"speaker": "Void",
"text": "Pick a door. The map will keep accusing us of being real."
}
}
]
},
{
"id": "sai.choices",
"kind": "rail.actions",
"children": [
{
"id": "sai.choice.eve",
"kind": "control.button",
"props": {
"label": "What is Eve trying to turn the web into?",
"action": {
"schema": "gamecult.eve.command.v1",
"command": "story.choose",
"payload": { "index": 0, "targetPath": "eve" }
}
}
}
]
}
]
}
},
"commands": [
{ "schema": "gamecult.eve.command.v1", "command": "story.continue", "label": "Continue" },
{ "schema": "gamecult.eve.command.v1", "command": "story.choose", "label": "Choose" },
{ "schema": "gamecult.eve.command.v1", "command": "story.jump", "label": "Jump to knot" },
{ "schema": "gamecult.eve.command.v1", "command": "style.patch", "label": "Patch style" }
]
}