{
  "id": "airport",
  "title": "Checking in at the airport",
  "group": "travel",
  "partner": {
    "name": "Tom",
    "role": "check-in agent"
  },
  "topic": [
    "flight",
    "fly*",
    "plane",
    "airport",
    "airline",
    "passport",
    "bag*",
    "luggage",
    "suitcase*",
    "check in",
    "checking in",
    "boarding",
    "gate",
    "seat*",
    "kilo*",
    "scale",
    "ticket*",
    "delay*",
    "terminal",
    "connect*",
    "travel*",
    "trip",
    "booking",
    "holiday"
  ],
  "levels": {
    "A2": {
      "goal": "Check in, drop your bag and find out your gate.",
      "phrases": [
        {
          "text": "I'm flying to…",
          "re": "\\b(i'm|i am) flying to\\b"
        },
        {
          "text": "Just one bag.",
          "re": "\\b(just|only) one (bag|suitcase)\\b"
        },
        {
          "text": "A window seat, please.",
          "re": "\\b(window|aisle) seat\\b"
        },
        {
          "text": "Which gate is it?",
          "re": "\\bwhich gate\\b"
        },
        {
          "text": "What time is boarding?",
          "re": "\\bwhat time (is|does) boarding\\b"
        }
      ],
      "words": [
        {
          "w": "to check a bag",
          "m": "to give your big bag to the airline"
        },
        {
          "w": "aisle seat",
          "m": "a seat next to the way down the plane"
        },
        {
          "w": "boarding pass",
          "m": "the paper you show to get on the plane"
        }
      ],
      "steps": [
        {
          "id": "destination",
          "task": "Say where you're flying",
          "say": "Good morning. Where are you flying to today?",
          "hint": "Which city are you going to? London? Rome?",
          "model": "I'm flying to London.",
          "options": [
            {
              "id": "city",
              "any": [
                "london",
                "paris",
                "rome",
                "madrid",
                "barcelona",
                "berlin",
                "munich",
                "frankfurt",
                "amsterdam",
                "brussels",
                "vienna",
                "prague",
                "budapest",
                "warsaw",
                "lisbon",
                "dublin",
                "edinburgh",
                "manchester",
                "athens",
                "istanbul",
                "ankara",
                "izmir",
                "antalya",
                "dubai",
                "doha",
                "cairo",
                "tokyo",
                "seoul",
                "beijing",
                "bangkok",
                "singapore",
                "sydney",
                "toronto",
                "new york",
                "chicago",
                "boston",
                "miami",
                "los angeles",
                "milan",
                "venice",
                "geneva",
                "zurich",
                "stockholm",
                "copenhagen",
                "oslo",
                "moscow",
                "kyiv",
                "delhi",
                "spain",
                "france",
                "italy",
                "germany",
                "england",
                "scotland",
                "ireland",
                "portugal",
                "greece",
                "turkey",
                "america",
                "usa",
                "canada",
                "japan",
                "china",
                "brazil",
                "mexico",
                "egypt",
                "india",
                "australia",
                "flying to",
                "flight to",
                "fly to",
                "flying home",
                "going home",
                "/\\b(?:go|going|fly|flying|flight|travel\\w*|heading) to [a-z]+/"
              ],
              "reply": "@great"
            }
          ],
          "tests": {
            "on": [
              "I'm flying to London",
              "Paris",
              "to Istanbul please",
              "I go to New York",
              "my flight to Berlin"
            ],
            "partly": [
              "good morning",
              "here is my passport"
            ],
            "off": [
              "my sister works at a bank in the city centre"
            ],
            "unclear": [
              "hmm"
            ]
          }
        },
        {
          "id": "bags",
          "task": "Say how many bags you have",
          "say": "Are you checking any bags today?",
          "hint": "Do you have a big bag? One bag, or two?",
          "model": "Yes, just one bag.",
          "options": [
            {
              "id": "one",
              "any": [
                "one bag",
                "one suitcase",
                "just one",
                "only one",
                "1 bag",
                "a bag",
                "a suitcase",
                "this one",
                "this bag",
                "one",
                "yes",
                "yeah"
              ],
              "none": [
                "two",
                "2",
                "both"
              ],
              "reply": "Okay. Put it on the scale, please."
            },
            {
              "id": "two",
              "any": [
                "two",
                "2",
                "two bags",
                "2 bags",
                "two suitcases",
                "both"
              ],
              "reply": "Okay, put them both on the scale."
            },
            {
              "id": "hand",
              "any": [
                "no bags",
                "no bag",
                "no",
                "nothing",
                "hand luggage",
                "carry on",
                "cabin bag",
                "just this",
                "only this",
                "backpack",
                "rucksack",
                "don't have",
                "not checking",
                "just hand"
              ],
              "reply": "Okay, just hand luggage."
            }
          ],
          "tests": {
            "on": [
              "just one bag => one",
              "two suitcases => two",
              "no just hand luggage => hand",
              "yes one => one",
              "I don't have any bags => hand"
            ],
            "partly": [
              "my bag is heavy",
              "a window seat"
            ],
            "off": [
              "I watched a good film last night"
            ]
          }
        },
        {
          "id": "seat",
          "task": "Choose your seat",
          "say": "Would you like a window or an aisle seat?",
          "hint": "By the window, or by the aisle?",
          "model": "A window seat, please.",
          "options": [
            {
              "id": "window",
              "any": [
                "window"
              ],
              "reply": "A window seat, sure."
            },
            {
              "id": "aisle",
              "any": [
                "aisle",
                "isle",
                "corridor",
                "leg room",
                "legroom"
              ],
              "reply": "An aisle seat, no problem."
            },
            {
              "id": "any",
              "any": [
                "don't mind",
                "doesn't matter",
                "either",
                "any seat",
                "anything",
                "whatever",
                "no preference"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "a window seat please => window",
              "aisle please => aisle",
              "I don't mind => any",
              "the aisle please, not the window => aisle"
            ],
            "partly": [
              "one bag",
              "yes please"
            ],
            "off": [
              "my favourite food is pizza with cheese"
            ]
          }
        },
        {
          "id": "questions",
          "task": "Ask about your gate or time",
          "say": "Here's your boarding pass. Any questions?",
          "hint": "Do you want to know the gate or the time?",
          "model": "Which gate is it?",
          "options": [
            {
              "id": "gate",
              "any": [
                "gate",
                "which gate",
                "where do i go",
                "where is",
                "where's",
                "terminal"
              ],
              "reply": "It's gate 14, on the left."
            },
            {
              "id": "time",
              "any": [
                "what time",
                "when",
                "time",
                "boarding time",
                "boarding start*",
                "start boarding",
                "how long"
              ],
              "reply": "Boarding is at ten fifteen."
            },
            {
              "id": "none",
              "any": [
                "no",
                "no questions",
                "that's all",
                "that's it",
                "i'm fine",
                "i'm good",
                "nothing",
                "no thanks",
                "thank*",
                "all good"
              ]
            }
          ],
          "tests": {
            "on": [
              "which gate is it => gate",
              "what time does boarding start => time",
              "no thank you => none",
              "what time is the boarding => time"
            ],
            "partly": [
              "a window seat",
              "my bag"
            ],
            "off": [
              "I really love chocolate ice cream"
            ]
          }
        }
      ],
      "close": "Have a good flight!",
      "watch": [
        {
          "re": "\\bi go to (?!work\\b|school\\b|bed\\b|the\\b|my\\b)([a-z]+)",
          "better": "I'm flying to $1",
          "note": "For a trip now, say “I’m flying to…”.",
          "tests": {
            "yes": [
              "I go to London"
            ],
            "no": [
              "I'm flying to London",
              "I go to work by bus"
            ]
          }
        },
        {
          "re": "\\b(window|aisle) (place|chair|side|position)\\b",
          "better": "$1 seat",
          "note": "On a plane, it’s a “seat”.",
          "tests": {
            "yes": [
              "window place please"
            ],
            "no": [
              "a window seat please"
            ]
          }
        },
        {
          "re": "\\bthe boarding\\b(?! pass| card| gate| time)",
          "better": "boarding",
          "note": "No “the” here: what time is boarding?",
          "tests": {
            "yes": [
              "what time is the boarding"
            ],
            "no": [
              "what time does boarding start",
              "where is the boarding pass"
            ]
          }
        }
      ]
    },
    "B1": {
      "goal": "Check in, sort out a heavy bag and ask about a delay.",
      "phrases": [
        {
          "text": "Here's my passport.",
          "re": "\\bhere'?s my passport\\b|\\bhere (you are|you go|it is)\\b"
        },
        {
          "text": "I'll take a few things out.",
          "re": "\\btake (a few |some )?things out\\b|\\btake (some|a few) things\\b"
        },
        {
          "text": "How long is the delay?",
          "re": "\\bhow long is the delay\\b|\\bhow late\\b"
        },
        {
          "text": "Could I sit next to my friend?",
          "re": "\\bsit next to\\b"
        },
        {
          "text": "Is it possible to…?",
          "re": "\\bis it possible to\\b"
        }
      ],
      "words": [
        {
          "w": "booking reference",
          "m": "the code of your ticket"
        },
        {
          "w": "over the limit",
          "m": "heavier than the airline allows"
        },
        {
          "w": "running late",
          "m": "later than planned"
        }
      ],
      "steps": [
        {
          "id": "documents",
          "task": "Show your documents",
          "say": "Hi there. Passport and booking reference, please.",
          "hint": "Can I see your passport, please?",
          "model": "Here's my passport. The reference is on my phone.",
          "options": [
            {
              "id": "here",
              "any": [
                "passport",
                "here you are",
                "here it is",
                "here you go",
                "there you go",
                "here's",
                "here is",
                "reference",
                "booking",
                "code",
                "on my phone",
                "my phone",
                "this is",
                "yes",
                "sure",
                "of course"
              ],
              "none": [
                "don't have",
                "can't find",
                "cannot find",
                "forgot",
                "lost",
                "no reference",
                "haven't got"
              ],
              "reply": "@thanks"
            },
            {
              "id": "noref",
              "any": [
                "don't have",
                "can't find",
                "cannot find",
                "forgot the",
                "forgot my",
                "forgot",
                "lost",
                "no reference",
                "haven't got",
                "only the passport",
                "just the passport",
                "only my passport",
                "just my passport",
                "can't remember"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "here's my passport => here",
              "here you are => here",
              "I don't have the booking reference => noref",
              "here is my passport but I forgot the reference => noref",
              "the reference is on my phone => here"
            ],
            "partly": [
              "good morning",
              "I'm flying to Rome"
            ],
            "off": [
              "I play the guitar every evening"
            ]
          }
        },
        {
          "id": "heavy-bag",
          "task": "Sort out your heavy bag",
          "ahead": false,
          "say": "Your bag's two kilos over. Pay thirty euros, or take things out?",
          "hint": "Pay, or take a few things out?",
          "model": "I'll take a few things out.",
          "options": [
            {
              "id": "out",
              "any": [
                "take out",
                "take some",
                "take a few",
                "things out",
                "take things",
                "take it out",
                "move*",
                "remove",
                "hand luggage",
                "carry on",
                "backpack",
                "rucksack",
                "cabin bag",
                "put some",
                "put them",
                "wear",
                "jacket",
                "repack",
                "out"
              ],
              "reply": "Great, that's under the limit now."
            },
            {
              "id": "pay",
              "any": [
                "pay",
                "i'll pay",
                "card",
                "euros",
                "thirty",
                "30",
                "charge",
                "fee",
                "that's fine"
              ],
              "reply": "You can pay by card here."
            }
          ],
          "partly": [
            "how much",
            "expensive",
            "heavy",
            "limit",
            "really",
            "oh no"
          ],
          "tests": {
            "on": [
              "I'll take a few things out => out",
              "okay I'll pay by card => pay",
              "can I put some things in my backpack => out",
              "that's fine I'll pay => pay"
            ],
            "partly": [
              "how much is it",
              "oh no really",
              "I don't want to pay"
            ],
            "off": [
              "the weather is lovely in the mountains"
            ]
          }
        },
        {
          "id": "delay",
          "task": "React to the delay",
          "ahead": false,
          "say": "Just so you know, the flight is running late.",
          "hint": "Do you want to know how long?",
          "model": "Oh no. How long is the delay?",
          "options": [
            {
              "id": "time",
              "any": [
                "how long",
                "how late",
                "how much late",
                "what time",
                "new time",
                "when",
                "leave",
                "depart*",
                "minutes",
                "hour*",
                "delay*",
                "long"
              ],
              "reply": "About forty minutes. We leave at eleven."
            },
            {
              "id": "connection",
              "any": [
                "connection",
                "connecting",
                "transfer",
                "next flight",
                "miss*",
                "other flight",
                "change planes",
                "make it"
              ],
              "reply": "You'll still make your connection."
            },
            {
              "id": "fine",
              "any": [
                "okay",
                "ok",
                "no problem",
                "that's fine",
                "fine",
                "good to know",
                "thanks for telling",
                "thank*",
                "alright",
                "all right",
                "i see",
                "oh well"
              ]
            }
          ],
          "partly": [
            "oh no",
            "really",
            "late",
            "again",
            "seriously"
          ],
          "tests": {
            "on": [
              "how long is the delay => time",
              "will I miss my connection => connection",
              "okay thanks for telling me => fine",
              "oh no what time do we leave => time"
            ],
            "partly": [
              "oh no really",
              "my bag"
            ],
            "off": [
              "I would like to buy some new shoes"
            ]
          }
        },
        {
          "id": "seat",
          "task": "Ask for the seat you want",
          "say": "Would you like to change your seat?",
          "hint": "A window, an aisle, or next to a friend?",
          "model": "Could I sit next to my friend?",
          "options": [
            {
              "id": "friend",
              "any": [
                "next to my",
                "next to her",
                "next to him",
                "together",
                "friend*",
                "wife",
                "husband",
                "partner",
                "sister",
                "brother",
                "mum",
                "mom",
                "dad",
                "mother",
                "father",
                "colleague",
                "family",
                "son",
                "daughter",
                "kids",
                "children",
                "girlfriend",
                "boyfriend"
              ],
              "reply": "@of-course"
            },
            {
              "id": "window",
              "any": [
                "window"
              ],
              "reply": "@sure"
            },
            {
              "id": "aisle",
              "any": [
                "aisle",
                "isle",
                "exit",
                "legroom",
                "leg room",
                "front",
                "more space",
                "corridor"
              ],
              "reply": "@sure"
            },
            {
              "id": "keep",
              "any": [
                "no",
                "it's fine",
                "that's fine",
                "happy with",
                "keep",
                "no thanks",
                "i'm fine",
                "i'm good",
                "as it is",
                "it's okay",
                "it's ok",
                "no need"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "could I sit next to my friend => friend",
              "a window seat please => window",
              "no I'm happy with my seat => keep",
              "can I get a seat near the exit => aisle"
            ],
            "partly": [
              "yes please",
              "how long is the delay"
            ],
            "off": [
              "I usually cook dinner at home"
            ]
          }
        }
      ],
      "close": "Here's your boarding pass. It's gate B7.",
      "watch": [
        {
          "re": "\\boverweight (?:by )?(two|three|four|five|a few|\\d+) (kilos?|kg|kilograms?)\\b",
          "better": "$1 $2 over",
          "note": "Put the amount first: two kilos over.",
          "tests": {
            "yes": [
              "my bag is overweight two kilos"
            ],
            "no": [
              "my bag is two kilos over"
            ]
          }
        },
        {
          "re": "\\bhow much (late|delayed)\\b",
          "better": "how late",
          "note": "Ask “How late is it?” or “How long is the delay?”",
          "tests": {
            "yes": [
              "how much late is the flight"
            ],
            "no": [
              "how late is the flight",
              "how much is it"
            ]
          }
        },
        {
          "re": "\\bnear of\\b",
          "better": "near",
          "note": "“Near” needs no “of”: near the exit.",
          "tests": {
            "yes": [
              "a seat near of the exit"
            ],
            "no": [
              "a seat near the exit"
            ]
          }
        }
      ]
    },
    "B2": {
      "goal": "You missed a connection: get rebooked and ask what the airline covers.",
      "phrases": [
        {
          "text": "My connecting flight left without me.",
          "re": "\\bleft without me\\b"
        },
        {
          "text": "Is there anything earlier?",
          "re": "\\banything earlier\\b"
        },
        {
          "text": "I'd rather go on standby.",
          "re": "\\bi'?d rather\\b"
        },
        {
          "text": "What am I entitled to?",
          "re": "\\bentitled to\\b"
        },
        {
          "text": "Could you put that in writing?",
          "re": "\\bin writing\\b"
        }
      ],
      "words": [
        {
          "w": "standby",
          "m": "waiting for a free seat, with no promise"
        },
        {
          "w": "a voucher",
          "m": "a paper you use instead of money"
        },
        {
          "w": "entitled to",
          "m": "something you have the right to get"
        }
      ],
      "steps": [
        {
          "id": "problem",
          "task": "Explain what happened",
          "say": "Next, please. How can I help?",
          "hint": "A flight problem? A missed connection?",
          "model": "My connecting flight left without me.",
          "options": [
            {
              "id": "missed",
              "any": [
                "miss*",
                "connection",
                "connecting",
                "left without",
                "too late",
                "delay*",
                "late",
                "rebook*",
                "next flight",
                "another flight",
                "new flight",
                "toronto",
                "transfer",
                "stuck",
                "cancel*"
              ]
            }
          ],
          "partly": [
            "problem",
            "help",
            "question"
          ],
          "tests": {
            "on": [
              "my connecting flight left without me",
              "I missed my flight to Toronto",
              "my first flight was late and now I'm stuck"
            ],
            "partly": [
              "I have a problem with my flight",
              "good evening"
            ],
            "off": [
              "I am looking for a good Italian restaurant"
            ]
          }
        },
        {
          "id": "rebook",
          "task": "Choose a new flight",
          "ahead": false,
          "say": "The Toronto flight's gone. It's seven forty tomorrow, or standby tonight.",
          "hint": "A sure seat tomorrow, or standby with no promises?",
          "model": "I'd rather go on standby, but can you keep the morning seat?",
          "options": [
            {
              "id": "standby",
              "any": [
                "standby",
                "stand by",
                "tonight*",
                "this evening",
                "today",
                "try",
                "chance",
                "risk",
                "waiting list",
                "wait list"
              ],
              "reply": "Standby it is. I'll hold the morning seat."
            },
            {
              "id": "tomorrow",
              "any": [
                "tomorrow",
                "morning",
                "seven forty",
                "7 40",
                "/\\b7\\W+40\\b/",
                "740",
                "confirmed",
                "sure seat",
                "safe",
                "certain",
                "guaranteed",
                "definite"
              ],
              "reply": "Done. You're on the seven forty."
            }
          ],
          "partly": [
            "earlier",
            "sooner",
            "other airline",
            "another airline",
            "anything else",
            "any other",
            "direct",
            "entitled"
          ],
          "tests": {
            "on": [
              "I'd rather go on standby => standby",
              "I'll take the 7:40 tomorrow => tomorrow",
              "the confirmed seat please => tomorrow",
              "can I try tonight's flight => standby",
              "I don't want to risk it, tomorrow is fine => tomorrow"
            ],
            "partly": [
              "is there anything earlier",
              "what about another airline"
            ],
            "off": [
              "my daughter is learning to play the piano"
            ]
          }
        },
        {
          "id": "cover",
          "task": "Ask what the airline covers",
          "say": "You might be here tonight. Anything else?",
          "hint": "Questions about a hotel or meals tonight?",
          "model": "What am I entitled to? Is there a hotel?",
          "options": [
            {
              "id": "cover",
              "any": [
                "hotel",
                "room",
                "accommodation",
                "stay",
                "sleep",
                "overnight",
                "entitled",
                "cover*",
                "compensat*",
                "voucher*",
                "pay for",
                "food",
                "meal*",
                "eat",
                "dinner",
                "refund",
                "rights",
                "money",
                "expenses",
                "taxi"
              ],
              "reply": "You get a hotel and a meal voucher."
            },
            {
              "id": "none",
              "any": [
                "no",
                "that's all",
                "that's it",
                "nothing",
                "i'm fine",
                "i'm good",
                "no thanks",
                "thank*",
                "all good"
              ]
            }
          ],
          "tests": {
            "on": [
              "what am I entitled to => cover",
              "is the airline covering a hotel => cover",
              "no that's all => none"
            ],
            "partly": [
              "what about my seat",
              "and my flight"
            ],
            "off": [
              "I am going to paint my kitchen this weekend"
            ]
          }
        },
        {
          "id": "bag",
          "task": "Make sure about your bag",
          "ahead": false,
          "say": "And your bag goes straight through to Toronto.",
          "hint": "Worried about your bag? Or need it in writing?",
          "model": "Could you make sure it gets there? And put that in writing?",
          "options": [
            {
              "id": "check",
              "any": [
                "make sure",
                "are you sure",
                "definitely",
                "certain",
                "arrive*",
                "get there",
                "gets there",
                "go missing",
                "lose",
                "promise",
                "automatic*",
                "same flight",
                "really"
              ],
              "reply": "@of-course"
            },
            {
              "id": "writing",
              "any": [
                "writing",
                "written",
                "email",
                "print*",
                "paper",
                "confirm*",
                "receipt",
                "copy",
                "document*",
                "proof"
              ],
              "reply": "@of-course"
            },
            {
              "id": "fine",
              "any": [
                "okay",
                "ok",
                "great",
                "good",
                "perfect",
                "thank*",
                "that's fine",
                "alright",
                "brilliant",
                "lovely"
              ]
            }
          ],
          "tests": {
            "on": [
              "could you make sure it gets there => check",
              "could you put that in writing => writing",
              "great thanks => fine"
            ],
            "partly": [
              "what about the hotel"
            ],
            "off": [
              "my favourite colour is green"
            ]
          }
        }
      ],
      "close": "Here's your new booking. Sorry about this.",
      "watch": [
        {
          "re": "\\blost (my|the|our) (flight|connection|connecting flight|plane)\\b",
          "better": "missed $1 $2",
          "note": "You miss a flight. You lose things.",
          "tests": {
            "yes": [
              "I lost my connection"
            ],
            "no": [
              "I missed my flight",
              "I lost my passport"
            ]
          }
        },
        {
          "re": "\\b(?:assure|ensure) me(?: that)?\\b",
          "better": "make sure",
          "note": "“Make sure” is the everyday phrase.",
          "tests": {
            "yes": [
              "can you assure me that my luggage arrives"
            ],
            "no": [
              "can you make sure my bag gets there"
            ]
          }
        },
        {
          "re": "\\b(?:you|the airline|they) (?:must|have to|has to) (?:to )?(give|pay|cover|book|find)\\b",
          "better": "could you $1",
          "note": "A question gives them room to say yes.",
          "tests": {
            "yes": [
              "you must give me a hotel",
              "the airline has to pay for my hotel"
            ],
            "no": [
              "could you give me a hotel voucher"
            ]
          }
        }
      ]
    }
  }
}