Topic-Lesson-Choice-Response-Prompt (TLCRP) "tolchorp" format version 0.4, mediatype text/tlcrp. It is not YAML but is similar: // example %tlcrp topic: tolchorp example level: 1 // CEFR A1 lesson: format level: 6 // CEFR C2 choice: Are you enjoying the demonstration? media: beep.mp3 mediatype: audio/mp3;text=filename response: {affirmative} result: good response: {negative} result: bad response: what result: Are you enjoying the demonstration? freeform: true choice: good media: Excellent! choice: bad media: I'm sorry to hear that. prompt: {affirmative} words: yes|yeah|sure|ok|fine|ja|si prompt: {negative} words: no|nah // format [%tlcrp] // this text following two slashes is a comment topic: text [{name}] // text with optional name in braces level: _ // 1 means A1, 6 means C2 lesson: text [{name}] // text with optional name in braces // optional level (default is topic's) choice: question [{name}] // text with optional name in braces // body of choice unnecessary if same text (and name) is defined elsewhere // optional activity (text e.g. "assignment "), disabled (true/false), // proofread (as past tense adjective: default true=good, false=iffy), // media (text, file descriptor or base64), mediatype, and level response: prompt display text [{name}] result: [choice question text and/or name] // final state if missing // optional terminal (true means next choice is last; default is false), // activity (e.g. "assignment "), action (e.g. "[%python\n]..."), // plus as below for unnested prompts. [response...] [choice...] [lesson...] [topic...] // optional unnested items: topic: text [{name}] level: _ // 1 means A1, 6 means C2 lesson... lesson: text [{name}] // optional level (default is topic's) choice... choice: question [{name}] // body of choice unnecessary if same text (and name) is defined elsewhere // optional activity (text e.g. "assignment "), disabled (true/false), // proofread (as past tense adjective: default true=good, false=iffy), // media (file descriptor or base64), mediatype, and level response... response: prompt display text [{name}] result: [choice question text and/or name] // final state if missing // optional terminal (true means next choice is last; default is false), // activity (e.g. "assignment "), action (e.g. "[%python\n]..."), // plus as below for unnested prompts. prompt: display text [{name}] // optional language (default: en), words (default from display text), // media (file descriptor or base64), level, phonemes (default from words), // and freeform (default is false: no keyword spotting) // end mediatype text/tlcrp