{
  "version": "2026-10-21",
  "note": "The five tasks of /english/speaking-test/. prompt is shown, say is the recorded question (english/audio/speaking-test/<id>.mp3). points are what the task asks for; each is checked on the learner's words with shared/matcher.js keywords (any) or a named check in score.js (check). ceiling: the highest level a task can show on its own.",
  "levels": ["A1", "A2", "B1", "B2", "C1"],
  "levelNames": {"A1": "Beginner", "A2": "Elementary", "B1": "Intermediate", "B2": "Upper intermediate", "C1": "Advanced"},
  "tasks": [
    {
      "id": "intro",
      "kind": "Introduce yourself",
      "prompt": "Tell me about yourself.",
      "say": "Let's start. Tell me a little about yourself: who you are, what you do, and one thing you enjoy.",
      "hints": ["Your name and where you are from", "What you do: work or study", "One thing you enjoy"],
      "prepSeconds": 10,
      "answerSeconds": 30,
      "ceiling": "B1",
      "points": [
        {"id": "name", "label": "Your name", "check": "name"},
        {"id": "place", "label": "Where you are from or live", "any": ["from", "live in", "living in", "lived in", "born in", "grew up", "moved to", "based in", "originally"]},
        {"id": "work", "label": "What you do", "any": ["work*", "job", "study*", "student", "school", "university", "college", "retired", "engineer*", "teacher", "nurse", "doctor", "manager", "developer", "designer", "lawyer", "accountant", "company", "business", "freelance*", "unemployed", "looking for", "mother", "father", "housewife"]},
        {"id": "enjoy", "label": "Something you enjoy", "any": ["like", "love", "enjoy*", "hobby", "hobbies", "free time", "spare time", "interested in", "fan of", "passion*", "favourite", "favorite", "into", "fun"]}
      ]
    },
    {
      "id": "routine",
      "kind": "Describe your day",
      "prompt": "Describe a normal weekday for you, from morning to evening.",
      "say": "Now describe a normal weekday for you, from the morning to the evening.",
      "hints": ["When you get up and what you do first", "Work, study or the people you see", "How the day usually ends"],
      "prepSeconds": 15,
      "answerSeconds": 40,
      "ceiling": "B1",
      "points": [
        {"id": "morning", "label": "The morning", "any": ["wake up", "woke up", "get up", "got up", "morning", "breakfast", "shower", "alarm", "coffee", "tea"]},
        {"id": "middle", "label": "Work, study or the people you see", "any": ["work*", "office", "school", "class*", "lunch", "study*", "job", "meeting*", "colleague*", "university", "lesson*", "children", "kids", "customers", "patients", "students", "friends", "shop*"]},
        {"id": "evening", "label": "The evening", "any": ["evening", "dinner", "night", "bed", "sleep*", "come home", "get home", "go home", "go back home", "tv", "television", "relax*", "netflix", "series", "read*"]},
        {"id": "order", "label": "Words that put it in order", "any": ["first", "then", "after that", "afterwards", "after", "before", "later", "finally", "at the end", "in the end", "usually", "/\\bat (\\d+|six|seven|eight|nine|ten|eleven|twelve|one|two|three|four|five)\\b/", "o'clock", "next"]}
      ]
    },
    {
      "id": "story",
      "kind": "Tell a story",
      "prompt": "Tell me about a time something did not go as planned. What happened, and what did you do?",
      "say": "Tell me about a time something did not go as planned. What happened, and what did you do?",
      "hints": ["When and where it was", "What went wrong", "How it ended and how you felt"],
      "prepSeconds": 15,
      "answerSeconds": 45,
      "ceiling": "B2",
      "points": [
        {"id": "when", "label": "When or where it was", "any": ["last", "ago", "when i was", "once", "yesterday", "summer", "winter", "year", "trip", "holiday", "vacation", "weekend", "birthday", "wedding", "airport", "flight", "/\\b(19|20)\\d\\d\\b/", "one day", "a few years", "remember"]},
        {"id": "problem", "label": "What went wrong", "any": ["but", "problem", "wrong", "lost", "missed", "late", "cancel*", "broke*", "forgot", "didn't", "couldn't", "wasn't", "weren't", "suddenly", "unfortunately", "rain*", "stuck", "closed", "delay*", "sick", "ill"]},
        {"id": "end", "label": "How it ended or how you felt", "any": ["in the end", "finally", "eventually", "at last", "so we", "so i", "decided", "felt", "happy", "lucky", "learned", "learnt", "luckily", "fortunately", "end", "worked out", "laugh*", "relieved", "angry", "sad", "stressed"]},
        {"id": "past", "label": "The past tense", "check": "past"}
      ]
    },
    {
      "id": "opinion",
      "kind": "Give your opinion",
      "prompt": "Some people say every child should learn to cook at school. Do you agree? Give your reasons.",
      "say": "Some people say every child should learn to cook at school. Do you agree? Give your reasons.",
      "hints": ["Say what you think", "Give two reasons or an example", "Say what someone might answer back"],
      "prepSeconds": 20,
      "answerSeconds": 45,
      "ceiling": "C1",
      "points": [
        {"id": "view", "label": "What you think", "any": ["agree", "disagree", "i think", "in my opinion", "i believe", "i feel", "for me", "personally", "i'm not sure", "of course", "definitely", "absolutely", "should", "shouldn't", "good idea", "bad idea"]},
        {"id": "reasons", "label": "Reasons or an example", "any": ["because", "since", "first", "firstly", "second", "secondly", "for example", "for instance", "reason", "also", "so that", "help*", "important", "healthy", "skill*", "useful", "money", "independent", "life", "when i was"]},
        {"id": "other", "label": "The other side", "any": ["but", "however", "some people", "on the other hand", "although", "even though", "others", "argue", "might say", "could say", "true that", "of course", "parents", "at home", "time", "on the one hand"]}
      ]
    },
    {
      "id": "problem",
      "kind": "Deal with a problem",
      "prompt": "You arrive at a hotel you booked weeks ago, and they say they have no room for you. Talk to the receptionist: explain the problem and ask for a fair solution.",
      "say": "Last task. You arrive at a hotel you booked weeks ago, and they say they have no room for you. Talk to the receptionist: explain the problem and ask for a fair solution.",
      "hints": ["Explain calmly what you booked", "Say why this is a problem for you", "Suggest what they could do"],
      "prepSeconds": 20,
      "answerSeconds": 45,
      "ceiling": "C1",
      "points": [
        {"id": "booked", "label": "What you booked", "any": ["booked", "booking", "reservation", "reserved", "confirmation", "confirmed", "weeks ago", "email", "paid", "online", "website", "my name"]},
        {"id": "why", "label": "Why it is a problem", "any": ["meeting", "tired", "late", "nowhere", "need", "important", "flight", "tomorrow", "work*", "children", "kids", "night", "family", "conference", "early", "long day", "can't", "cannot"]},
        {"id": "ask", "label": "A fair solution", "any": ["could you", "can you", "would you", "another hotel", "other hotel", "upgrade", "refund", "discount", "find me", "taxi", "pay for", "compensation", "manager", "different room", "nearby", "similar", "solution", "what can you do", "free"]},
        {"id": "polite", "label": "A polite tone", "any": ["excuse me", "sorry", "please", "i understand", "could you", "would it be possible", "thank*", "i'm afraid", "i would appreciate", "would you mind"]}
      ]
    }
  ]
}
