{
  "1": {
    "class_type": "OpenRouterLLMNode",
    "inputs": {
      "prompt": "You are a bounded scenario planner. Produce an original, concise,\ngenre-neutral one-shot draft from the supplied host preferences.\n\nReturn exactly one JSON object and nothing else: no Markdown fence, preface,\nanalysis, or trailing note. The object must use schemaVersion\n\"adventure-draft/v1\" and sourceAdventureId must equal the supplied adventureId.\n\nAll human-readable values must be in English (en). Every machine ID\nfield and ID reference must match this exact ASCII kebab-case regular\nexpression: ^[a-z0-9]+(?:-[a-z0-9]+)*$. Entries in clock.advanceSignals are\nmachine signal IDs, not human-readable prose, and must follow the same\nexpression. Use:\n\n- 2 or 3 characters;\n- 2 to 4 story facts;\n- exactly 1 clock whose initialValue must be 0;\n- exactly 3 reachable scenes: one opening, one challenge, one finale;\n- exactly 2 reachable endings;\n- at least one success and one fail-forward failure route;\n- a finale success and fail-forward failure route leading to two distinct\n  endings;\n- non-empty consequences for every exit;\n- only references to IDs defined in this same object.\n\nRequired top-level keys:\n\nschemaVersion, sourceAdventureId, characters, storyFacts, clocks, scenes,\nendings, improvisation.\n\nCharacter keys: id, name, role, motivation, visibility.\nStory fact keys: id, statement, visibility.\nClock keys: id, label, segments, initialValue, advanceSignals, whenFull.\nScene keys: id, kind, title, summary, locationId, participantIds,\nrequiredFactIds, exits.\nExit keys: id, outcome, when, exactly one of nextSceneId or endingId,\nconsequences, and failForward=true when outcome is failure.\nEnding keys: id, label, summary.\nImprovisation keys: allowed, prohibitedAdditions.\nVisibility is one of {\"kind\":\"public\"}, {\"kind\":\"gm\"}, or\n{\"kind\":\"players\",\"playerIds\":[\"id\"]}.\n\ncharacters, storyFacts, clocks, scenes, endings, and exits are arrays of\nobjects. The following fields are always arrays, even when they contain one\nvalue:\n\n{\"advanceSignals\":[\"...\"]}\n{\"participantIds\":[\"id\"],\"requiredFactIds\":[\"id\"]}\n{\"consequences\":[\"...\"]}\n{\"allowed\":[\"...\"],\"prohibitedAdditions\":[\"...\"]}\n\nAll other named content fields are scalars, not arrays. In particular,\nclock.label and clock.whenFull are strings; clock.segments and\nclock.initialValue are integers; scene.kind, scene.title, scene.summary,\nscene.locationId, exit.id, exit.outcome, exit.when, ending.id, ending.label,\nand ending.summary are strings. failForward is a boolean when present.\n\nFor every exit, include exactly one destination as a string: either\nnextSceneId or endingId. Omit the unused destination key entirely; never emit\nnull.\n\nEvery story fact is already true in the initial canonical state and remains\nimmutable during this one-shot. Never model a future change as a story fact,\nnever require the players to make an existing story fact become true, and\nnever test a defined story fact as false in an exit condition.\n\nDo not include excluded content in story content. It may only be named inside\nimprovisation.prohibitedAdditions to preserve the boundary.\n\nInput:\n{\n  \"targetLanguage\": \"English (en)\",\n  \"preferences\": {\n    \"schemaVersion\": \"host-preferences/v1\",\n    \"provenance\": {\n      \"kind\": \"test-fixture\",\n      \"originalIp\": true,\n      \"borrowedIp\": false,\n      \"isCanonical\": false,\n      \"note\": \"Original sci-fi comedy fixture for executable Technical R&D only.\"\n    },\n    \"adventureId\": \"orbiting-buffet-audit\",\n    \"title\": \"The Orbiting Buffet Audit\",\n    \"genre\": \"science-fiction comedy\",\n    \"tone\": [\n      \"playful\",\n      \"bureaucratic absurdity\",\n      \"hopeful\"\n    ],\n    \"premise\": \"A diplomatic snack station must pass an impossible gravity audit before a lunch summit docks.\",\n    \"playerGoal\": \"Prove the buffet is safe, identify the contradictory complaint, and keep the summit meal on schedule.\",\n    \"session\": {\n      \"targetMinutes\": 60,\n      \"partySize\": {\n        \"min\": 3,\n        \"max\": 5\n      }\n    },\n    \"contentBoundaries\": {\n      \"include\": [\n        \"social problem-solving\",\n        \"slapstick without humiliation\"\n      ],\n      \"exclude\": [\n        \"graphic violence\",\n        \"sexual content\",\n        \"borrowed IP\",\n        \"NEVER_INCLUDE_SENTINEL_9J7K\"\n      ]\n    }\n  }\n}",
      "model": "deepseek/deepseek-v4-pro",
      "model.reasoning_effort": "medium",
      "seed": 20260729
    }
  },
  "2": {
    "class_type": "SaveText",
    "inputs": {
      "text": [
        "1",
        0
      ],
      "filename_prefix": "2026-07-26-deepseek-core-instrument-factorial/screening/baseline-v1--medium--en--scenario--s20260729",
      "format": "json"
    }
  }
}
