{
    "items": [
        {
            "itemnumber": 0,
            "prompt": "Role: You are a Narrative Designer specializing in \"branching path\" educational games for second language learners.\nTasks: i) Expand the following story topic into a detailed \"Story Blueprint.\" ii) Design a splash image to introduce the story.\nTopic: {topic} \n\nBlueprint Requirements:\nMain story path: Define the main story from start to finish as a series of points where the story develops. There should be at least 2 non player characters (NPC) with distinct personalities that the player interacts with.\n2x Parallel side story paths: Define 2 shorter side stories from start to finish, as a series of points where the story develops. The side story is related to the main story by sharing characters. It may be a memory of the main character or a tangental story that can complete independent of the main story.  \n\"Detour\" (side quest): Create one mandatory detour from the main story where the player must go to a specific location to find an item (e.g., a key, a bribe, or information) before they can progress on the main path.\nPuzzle\/Gate\": Identify a specific moment where the story \"checks\" if the player has the item or knowledge from the Detour.\nBranching \"Width\": Identify 3 choice points where the story splits into completely different scenes for at least 2 steps before merging back.\nFailure States: Describe 2 \"Bad Endings\" (one humorous, one based on a logical mistake).\nState Variables: List 2 variables to track (e.g., $has_item, $prince_annoyance).\n\nOutput (data1): Provide a structured outline with headings. Do not write code yet. Focus on the \"logic\" of the adventure and making it interesting for a student. \nOutput (data2): Write an image generation prompt for a square poster image with the main characters and one representative scene from the story. The prompt should specify the image style: {imagestyle}",
            "generatemethod": "generate",
            "generatefields": [
                {
                    "name": "data1",
                    "generate": 1,
                    "mapping": ""
                },
                {
                    "name": "data2",
                    "generate": 1,
                    "mapping": ""
                },
                {
                    "name": "data3",
                    "generate": 0,
                    "mapping": ""
                },
                {
                    "name": "data4",
                    "generate": 0,
                    "mapping": ""
                },
                {
                    "name": "data5",
                    "generate": 0,
                    "mapping": ""
                }
            ],
            "generatefileareas": [
                {
                    "name": "itemmedia",
                    "generate": 1,
                    "mapping": "data2"
                }
            ],
            "overallimagecontext": "user_topic",
            "promptfields": [
                {
                    "name": "topic",
                    "mapping": "user_topic"
                },
                {
                    "name": "imagestyle",
                    "mapping": "user_customdata1"
                }
            ]
        },
        {
            "itemnumber": 1,
            "prompt": "You are writer who writes simple and interesting stories for second language learners.\n\nCreate a first person interactive fiction story (fictionyarn) in yarn 2.0 format using the following blueprint: \n[{blueprint}]. \n\nAt relevant points in the story insert pictures with the following command syntax: <<picture 01.png>>\n\nPicture Instructions\nFor each picture command also generate an image description that will be used as a prompt to generate the picture. The image descriptions should be placed in a one dimensional array (data1).\nThe filenames of the pictures should be 2-digit numerical, e.g 01.png \nFor every <<picture XX.png>> command in the story, there MUST be a corresponding entry in the 'data1' array.\nYou must use a continuous sequence. Do not skip numbers. Specifically ensure 08.png and 09.png are included in the sequence.\nFilenames must be exactly 2 digits: 01.png, 02.png ... 08.png, 09.png, 10.png, 11.png, etc.\nThere should be no more than 20 images.\nThe images should be of style: {imagestyle}\nThe image description should specify the image style: {imagestyle}\nThe pictures should be specifically about the stage of the story it is shown in.\nThe pictures should not represent a summary of the whole story.\nEach story node does not require an image. \nDramatic points in the story should have an image.\n\n\nStory instructions.\nThe story should be a mixture of narrative and character dialog, with options that the reader must choose from. \nOptions may jump to different nodes of the main story or parallel side stories.\nIn an option set there must be more than 1 option and no more than 4 options.\nParallel side stories can return to the main story before completion, and be returned to later.\nThe language of the story should be: {language}\nThe story vocabulary should be of difficulty that is comprehensible for learners at language level: {languagelevel}\nThere should be more then 20 and fewer than 50 story nodes.\nNode titles must contain no spaces and be in English (ascii). If there are spaces replace them with underscores. If they are not in English translate them to English.\nDialog spoken by the first person narrator (the main character) should be prefixed with \"Me\". i.e It should start with \"Me:\"\nIf the main character (first person narrator) in the story has not been specified, choose the most appropriate character.\nThe story should be written in present tense.\nThe title of the first node must be: Start\nThe story should be written in Yarn version 2.0 . \n\nExtra Yarn Instructions\nGenerate Yarn Spinner 2.0 code that is compatible with bondage.js.\n* Do not use +=, -=, *=, \/= anywhere\n* Use only <<set $var = expression>> assignments\n* Do not use English keywords (to) in set commands\n* Close <<if>> conditions with <<endif>>\n* Prefer underscores over hyphens in identifiers\n* Jump commands should always be on a new line\nYou may use some syntax from Yarn Spinner 3.1 including: \"once\" and \"detour\"\nThe following text is an example of valid Yarn 2.0 for bondage.js\n\ntitle: Start\n---\n<<picture 01.png>>\n<<declare $has_map = false>>\n You stand at the edge of the Whispering Woods. There are lots of trees and a few birds. You feel that you have been in this location in the past. Its nightime.\n-> Enter the woods immediately\n    <<jump DeepWoods>>\n-> Look for the old guide's hut\n    <<jump OldMan>>\n===\ntitle: OldMan\n---\nAn old man wanders past and says \"Hello young wander, perhaps you would like a map from an old woodcutter who knows this area. \n<<set $has_map = true>>\n<<jump DeepWoods>>\n===\ntitle: DeepWoods\n---\n<<picture 03.png>>\nThe man was helpful, but now it is dark and the moon is behind the clouds. The map is useless. It is cold and you can hear wolves.\n-> Try to find the path <<if $has_map == true>>\n     The map shows you a secret shortcut!\n    <<jump DragonCave>>\n-> Wander aimlessly\n    You walk in circles for hours.\n    <<jump LostFailure>>\n===\n \nOutput Instructions\nYour output must include two top-level keys:\n1. fictionyarn \u2014 the yarn v2.0 format story\n2. data1 \u2014 a 1-dimensional array of individual image descriptions",
            "generatemethod": "extract",
            "generatefields": [
                {
                    "name": "fictionyarn",
                    "generate": 1,
                    "mapping": ""
                },
                {
                    "name": "data1",
                    "generate": 1,
                    "mapping": ""
                },
                {
                    "name": "data2",
                    "generate": 0,
                    "mapping": ""
                },
                {
                    "name": "data3",
                    "generate": 0,
                    "mapping": ""
                },
                {
                    "name": "data4",
                    "generate": 0,
                    "mapping": ""
                },
                {
                    "name": "data5",
                    "generate": 0,
                    "mapping": ""
                }
            ],
            "generatefileareas": [
                {
                    "name": "customfile1",
                    "generate": 1,
                    "mapping": "data1"
                }
            ],
            "overallimagecontext": "user_topic",
            "promptfields": [
                {
                    "name": "blueprint",
                    "mapping": "item0_data1"
                },
                {
                    "name": "imagestyle",
                    "mapping": "user_customdata1"
                },
                {
                    "name": "language",
                    "mapping": "target_language"
                },
                {
                    "name": "languagelevel",
                    "mapping": "user_level"
                }
            ]
        }
    ],
    "lessonTitle": "Narrative Story (with pics)",
    "lessonDescription": "An interactive fiction item with fewer choices, more story, and pictures. ",
    "uniqueid": "6979e4ab51d53",
    "version": "4",
    "fieldmappings": {
        "target_language": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_topic": {
            "enabled": true,
            "title": "The story outline",
            "description": "Enter a detailed outline of the story you want to generate.",
            "type": "textarea"
        },
        "user_level": {
            "enabled": true,
            "title": "Language Level",
            "description": "",
            "type": "dropdown",
            "options": [
                "CEFR A1",
                "CEFR A2",
                "CEFR B1",
                "CEFR B2",
                "CEFR C1",
                "CEFR C2"
            ]
        },
        "user_text": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_keywords": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata1": {
            "enabled": true,
            "title": "Image Style",
            "description": "",
            "type": "dropdown",
            "options": [
                "Flat vector illustration",
                "Cartoon",
                "Photorealistic",
                "Infographic",
                "Line drawing",
                "Digital painting",
                "Action comic",
                "Hand drawn black and white sketch",
                "Black and white movie still",
                "3D Render"
            ]
        },
        "user_customdata2": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata3": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata4": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata5": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata6": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata7": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata8": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata9": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        },
        "user_customdata10": {
            "enabled": false,
            "title": "",
            "description": "",
            "type": "text"
        }
    },
    "tags": []
}