{
  "id": "hotel",
  "title": "Checking in at a hotel",
  "group": "travel",
  "partner": {
    "name": "Ana",
    "role": "hotel receptionist"
  },
  "topic": [
    "hotel",
    "room*",
    "booking",
    "book*",
    "reservation",
    "check in",
    "checking in",
    "check out",
    "checkout",
    "key*",
    "passport",
    "night*",
    "breakfast",
    "wifi",
    "password",
    "lift",
    "elevator",
    "floor",
    "reception",
    "bed*",
    "bag*",
    "luggage",
    "stay*",
    "towel*",
    "shower"
  ],
  "levels": {
    "A2": {
      "goal": "Check in, get your key and ask about breakfast or the wifi.",
      "phrases": [
        {
          "text": "I have a booking under…",
          "re": "\\bbooking under\\b|\\bunder the name\\b"
        },
        {
          "text": "Here you are.",
          "re": "\\bhere (you are|you go|it is)\\b"
        },
        {
          "text": "What time is breakfast?",
          "re": "\\bwhat time is breakfast\\b|\\bwhen is breakfast\\b"
        },
        {
          "text": "What's the wifi password?",
          "re": "\\bwi-?fi password\\b"
        },
        {
          "text": "Where's the lift?",
          "re": "\\bwhere('s| is) the (lift|elevator)\\b"
        }
      ],
      "words": [
        {
          "w": "a booking",
          "m": "a room you asked for before you came"
        },
        {
          "w": "the lift",
          "m": "the elevator"
        },
        {
          "w": "a wake-up call",
          "m": "the hotel phones your room to wake you"
        }
      ],
      "steps": [
        {
          "id": "booking",
          "task": "Say you have a booking",
          "say": "Good evening! Do you have a booking?",
          "hint": "Did you book a room with us? Yes or no?",
          "model": "Yes, I have a booking under Silva.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "booking",
                "booked",
                "reservation",
                "reserved",
                "under",
                "my name",
                "name is",
                "online"
              ]
            },
            {
              "id": "no",
              "any": [
                "no booking",
                "no reservation",
                "don't have",
                "haven't",
                "no",
                "walk in",
                "free room",
                "any rooms",
                "a room for",
                "need a room",
                "available",
                "tonight"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "yes I have a booking under Silva => yes",
              "yes => yes",
              "no I don't have a booking => no",
              "do you have a room for tonight => no"
            ],
            "partly": [
              "good evening",
              "where is the lift"
            ],
            "off": [
              "my brother is a teacher in Madrid"
            ]
          }
        },
        {
          "id": "passport",
          "task": "Show your passport",
          "say": "Can I see your passport, please?",
          "hint": "Your passport, please. Do you have it?",
          "model": "Yes, here you are.",
          "options": [
            {
              "id": "here",
              "any": [
                "passport",
                "here you are",
                "here it is",
                "here you go",
                "there you go",
                "here's",
                "here is",
                "id",
                "id card",
                "identity card",
                "this is",
                "yes",
                "sure",
                "of course"
              ],
              "reply": "@thanks"
            }
          ],
          "tests": {
            "on": [
              "here you are",
              "yes here is my passport",
              "sure"
            ],
            "partly": [
              "what time is breakfast",
              "hello"
            ],
            "off": [
              "I like swimming in the sea in summer"
            ]
          }
        },
        {
          "id": "questions",
          "task": "Ask about breakfast or the wifi",
          "say": "Here's your key. Room three one two. Any questions?",
          "hint": "Do you want to know about breakfast, or the wifi?",
          "model": "What time is breakfast?",
          "options": [
            {
              "id": "breakfast",
              "any": [
                "breakfast",
                "eat",
                "food",
                "restaurant",
                "morning",
                "coffee"
              ],
              "reply": "Breakfast is from seven to ten."
            },
            {
              "id": "wifi",
              "any": [
                "wifi",
                "wi fi",
                "internet",
                "password",
                "network",
                "connect*"
              ],
              "reply": "The wifi password is on your key card."
            },
            {
              "id": "lift",
              "any": [
                "lift",
                "elevator",
                "stairs",
                "which floor",
                "floor",
                "my room",
                "the room",
                "find"
              ],
              "reply": "The lift is on your left."
            },
            {
              "id": "none",
              "any": [
                "no",
                "no questions",
                "that's all",
                "that's it",
                "nothing",
                "i'm fine",
                "i'm good",
                "thank*",
                "no thanks",
                "all good"
              ]
            }
          ],
          "tests": {
            "on": [
              "what time is breakfast => breakfast",
              "what's the wifi password => wifi",
              "where is the lift => lift",
              "no thank you => none",
              "where is breakfast => breakfast"
            ],
            "partly": [
              "my passport",
              "is it a big room"
            ],
            "off": [
              "I usually play tennis on Sundays"
            ]
          }
        },
        {
          "id": "wake-up",
          "task": "Answer about a wake-up call",
          "ahead": false,
          "say": "Would you like a wake-up call tomorrow?",
          "hint": "We can call your room in the morning. Yes or no?",
          "model": "Yes, please. At seven o'clock.",
          "options": [
            {
              "id": "time",
              "any": [
                "/\\b(?:[1-9]|1[0-2])(?: ?\\| ?[0-5]\\d)?(?: ?(?:am|pm|a m|p m))?\\b/",
                "five",
                "six",
                "seven",
                "eight",
                "nine",
                "ten",
                "o'clock",
                "half past",
                "quarter past",
                "quarter to"
              ],
              "reply": "Okay, I'll call you then."
            },
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "please",
                "sure",
                "that would be",
                "good idea",
                "great",
                "okay",
                "why not",
                "wake me"
              ],
              "none": [
                "/\\b(?:[1-9]|1[0-2])(?: ?\\| ?[0-5]\\d)?(?: ?(?:am|pm|a m|p m))?\\b/",
                "five",
                "six",
                "seven",
                "eight",
                "nine",
                "ten",
                "o'clock",
                "half past",
                "quarter past",
                "quarter to"
              ],
              "reply": "Sure. What time?",
              "next": "time"
            },
            {
              "id": "no",
              "any": [
                "no",
                "no thanks",
                "not necessary",
                "don't need",
                "alarm",
                "my phone",
                "i'm fine",
                "i'm okay",
                "no need"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "yes please at seven o'clock => time",
              "yes please => yes",
              "no thanks I have an alarm => no",
              "at 6:30 => time"
            ],
            "partly": [
              "what time is breakfast"
            ],
            "off": [
              "my cat likes to sit on the sofa"
            ]
          }
        },
        {
          "id": "time",
          "jump": true,
          "task": "Say a time",
          "hint": "What time do you want the call? Seven? Eight?",
          "model": "At seven, please.",
          "options": [
            {
              "id": "time",
              "any": [
                "/\\b(?:[1-9]|1[0-2])(?: ?\\| ?[0-5]\\d)?(?: ?(?:am|pm|a m|p m))?\\b/",
                "five",
                "six",
                "seven",
                "eight",
                "nine",
                "ten",
                "o'clock",
                "half past",
                "quarter past",
                "quarter to"
              ],
              "reply": "@got-it"
            },
            {
              "id": "no",
              "any": [
                "no",
                "never mind",
                "don't need",
                "no thanks",
                "actually no"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "at seven please => time",
              "half past six => time",
              "never mind => no"
            ],
            "partly": [
              "breakfast"
            ],
            "off": [
              "my favourite colour is purple"
            ]
          }
        }
      ],
      "close": "Enjoy your stay!",
      "watch": [
        {
          "re": "\\b(booking|reservation) (?:on|in|with|at) (the name|my name|name)\\b",
          "better": "$1 under $2",
          "note": "Bookings are “under” a name.",
          "tests": {
            "yes": [
              "I have a reservation on the name Silva"
            ],
            "no": [
              "I have a booking under Silva"
            ]
          }
        },
        {
          "re": "\\bpassword of (?:the )?(wi-?fi|wi fi|internet)\\b",
          "better": "{lc:$1} password",
          "note": "Put “wifi” first: the wifi password.",
          "tests": {
            "yes": [
              "which is the password of the wifi"
            ],
            "no": [
              "what's the wifi password",
              "the password for the wifi"
            ]
          }
        },
        {
          "re": "\\bwhich is the (password|time|number|name|price)\\b",
          "better": "what's the $1",
          "note": "Ask for information with “what”: what’s the password?",
          "tests": {
            "yes": [
              "which is the password"
            ],
            "no": [
              "what's the password"
            ]
          }
        },
        {
          "re": "(?<!\\b(?:does|do|will|would|can) )\\b(?:is )?(breakfast|wi-?fi|parking|it) (?:is )?include\\b",
          "better": "is {lc:$1} included",
          "note": "Say “included”: is breakfast included?",
          "tests": {
            "yes": [
              "Breakfast is include?",
              "is breakfast include"
            ],
            "no": [
              "is breakfast included",
              "does it include breakfast"
            ]
          }
        }
      ]
    },
    "B1": {
      "goal": "Check in, ask for the room you want and sort out your bags.",
      "phrases": [
        {
          "text": "Would it be possible to…?",
          "re": "\\bwould it be possible\\b"
        },
        {
          "text": "Could I have a quiet room?",
          "re": "\\b(quiet|quieter) room\\b"
        },
        {
          "text": "Is there somewhere I can leave my bags?",
          "re": "\\bleave (my|our|the) (bags|luggage|suitcases?)\\b"
        },
        {
          "text": "Is there any chance…?",
          "re": "\\bany chance\\b"
        },
        {
          "text": "What time is checkout?",
          "re": "\\bwhat time is check-? ?out\\b"
        }
      ],
      "words": [
        {
          "w": "checkout",
          "m": "the time you must leave the room"
        },
        {
          "w": "extras",
          "m": "things you pay for later, like the minibar"
        },
        {
          "w": "behind the desk",
          "m": "in a safe place at reception"
        }
      ],
      "steps": [
        {
          "id": "checking-in",
          "task": "Say you're checking in",
          "say": "Hi, welcome. Checking in?",
          "hint": "Do you have a booking with us?",
          "model": "Yes, I have a booking under Silva.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "checking in",
                "check in",
                "booking",
                "booked",
                "reservation",
                "reserved",
                "under",
                "name is",
                "my name",
                "that's right"
              ]
            }
          ],
          "tests": {
            "on": [
              "yes I have a booking under Silva",
              "yes please",
              "that's right"
            ],
            "partly": [
              "hello good afternoon",
              "is breakfast included"
            ],
            "off": [
              "I bought a new jacket yesterday"
            ]
          }
        },
        {
          "id": "floor",
          "task": "Choose your room",
          "say": "Two nights in a double. Would you like a higher floor? It's quieter.",
          "hint": "A quiet room upstairs, or is any floor fine?",
          "model": "Yes, could I have a quiet room, please?",
          "options": [
            {
              "id": "high",
              "any": [
                "higher",
                "high",
                "quiet*",
                "top",
                "upstairs",
                "yes",
                "yeah",
                "sounds good",
                "please",
                "great",
                "perfect",
                "lovely"
              ],
              "none": [
                "doesn't matter",
                "don't mind"
              ],
              "reply": "Great, sixth floor it is."
            },
            {
              "id": "low",
              "any": [
                "low*",
                "ground floor",
                "first floor",
                "near the lift",
                "stairs",
                "doesn't matter",
                "don't mind",
                "no",
                "any floor",
                "as it is",
                "no thanks",
                "either"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "yes could I have a quiet room please => high",
              "no thanks I don't mind => low",
              "a higher floor sounds good => high",
              "the ground floor please => low"
            ],
            "partly": [
              "what time is checkout",
              "my bags"
            ],
            "off": [
              "my son plays football every weekend"
            ]
          }
        },
        {
          "id": "not-ready",
          "task": "Sort out your bags",
          "ahead": false,
          "say": "I'm afraid the room isn't ready until two.",
          "hint": "You can wait here, or leave your bags with us.",
          "model": "Is there somewhere I can leave my bags?",
          "options": [
            {
              "id": "bags",
              "any": [
                "leave",
                "bag*",
                "luggage",
                "suitcase*",
                "store",
                "keep",
                "drop",
                "left luggage"
              ],
              "reply": "Sure, I'll keep them behind the desk."
            },
            {
              "id": "early",
              "any": [
                "earlier",
                "any chance",
                "sooner",
                "early",
                "possible",
                "faster",
                "quicker",
                "before two",
                "hurry"
              ],
              "reply": "I'll try, but I can't promise."
            },
            {
              "id": "wait",
              "any": [
                "wait",
                "bar",
                "lobby",
                "coffee",
                "sit",
                "come back",
                "walk",
                "go out",
                "explore",
                "lunch"
              ],
              "reply": "@no-problem"
            }
          ],
          "partly": [
            "really",
            "oh no",
            "two",
            "o'clock",
            "tired",
            "later"
          ],
          "tests": {
            "on": [
              "is there somewhere I can leave my bags => bags",
              "is there any chance it could be ready earlier => early",
              "that's fine I'll come back later => wait",
              "can I leave my bags and come back later => bags"
            ],
            "partly": [
              "oh no really",
              "a quiet room"
            ],
            "off": [
              "I have a meeting with my boss at work"
            ]
          }
        },
        {
          "id": "card",
          "task": "Give a card for extras",
          "say": "Can I take a card for any extras?",
          "hint": "I just need a card for the minibar. Is that okay?",
          "model": "Sure, here you are.",
          "options": [
            {
              "id": "card",
              "any": [
                "card",
                "here you are",
                "here you go",
                "here it is",
                "there you go",
                "here's",
                "sure",
                "yes",
                "of course",
                "credit",
                "visa",
                "debit",
                "mastercard",
                "okay",
                "that's fine",
                "no problem"
              ],
              "none": [
                "cash"
              ],
              "reply": "@thanks"
            },
            {
              "id": "cash",
              "any": [
                "cash",
                "pay now",
                "no card",
                "without a card"
              ],
              "reply": "@no-problem"
            }
          ],
          "partly": [
            "extras",
            "what extras",
            "minibar",
            "why",
            "what for",
            "how much",
            "charge",
            "deposit"
          ],
          "tests": {
            "on": [
              "sure here you are => card",
              "can I pay cash => cash",
              "yes of course => card"
            ],
            "partly": [
              "what extras",
              "why do you need it"
            ],
            "off": [
              "my sister lives near the beach in Spain"
            ]
          }
        }
      ],
      "close": "Checkout is at eleven. Enjoy your stay!",
      "watch": [
        {
          "re": "\\b(room|floor) more (quiet|big|small|high|cheap|nice|clean|large)\\b",
          "better": "{more:$2} $1",
          "note": "Short adjectives take -er, before the noun: a quieter room.",
          "tests": {
            "yes": [
              "I want a room more quiet"
            ],
            "no": [
              "could I have a quieter room"
            ]
          }
        },
        {
          "re": "\\bair condition\\b",
          "better": "air conditioning",
          "note": "It’s “air conditioning”, or just “the AC”.",
          "tests": {
            "yes": [
              "the air condition doesn't work"
            ],
            "no": [
              "the air conditioning isn't working"
            ]
          }
        },
        {
          "re": "\\bwhat hour\\b",
          "better": "what time",
          "note": "Ask “what time”, not “what hour”.",
          "tests": {
            "yes": [
              "what hour is checkout"
            ],
            "no": [
              "what time is checkout"
            ]
          }
        }
      ]
    },
    "B2": {
      "goal": "Complain politely about a problem and agree on a fair solution.",
      "phrases": [
        {
          "text": "I'm afraid there's a problem with my room.",
          "re": "\\bproblem with (my|the) room\\b"
        },
        {
          "text": "I didn't get much sleep.",
          "re": "\\b(didn't|did not) get much sleep\\b"
        },
        {
          "text": "I'd appreciate it if…",
          "re": "\\bappreciate\\b"
        },
        {
          "text": "That would be great, thanks.",
          "re": "\\bthat would be (great|lovely|perfect)\\b"
        },
        {
          "text": "Is there anything else you could do?",
          "re": "\\banything else you (could|can) do\\b"
        }
      ],
      "words": [
        {
          "w": "quite full",
          "m": "almost no free rooms"
        },
        {
          "w": "a discount",
          "m": "a lower price"
        },
        {
          "w": "leave it with me",
          "m": "I will deal with it"
        }
      ],
      "steps": [
        {
          "id": "problem",
          "task": "Explain the problem",
          "say": "Good morning. How can I help?",
          "hint": "Is something wrong with your room?",
          "model": "I'm afraid there's a problem with my room. It was very noisy.",
          "options": [
            {
              "id": "problem",
              "any": [
                "noise",
                "noisy",
                "loud",
                "music",
                "party",
                "parties",
                "street",
                "traffic",
                "sleep*",
                "slept",
                "next door",
                "neighbo*",
                "construction",
                "building work",
                "air conditioning",
                "ac",
                "aircon",
                "heating",
                "cold",
                "hot",
                "shower",
                "water",
                "dirty",
                "clean*",
                "broken",
                "smell*",
                "bed",
                "problem",
                "issue",
                "complain*",
                "wrong",
                "not working",
                "doesn't work",
                "isn't working",
                "unhappy",
                "disappoint*",
                "awful",
                "terrible",
                "bad night",
                "unacceptable"
              ]
            }
          ],
          "tests": {
            "on": [
              "I'm afraid there's a problem with my room",
              "the room was very noisy and I didn't sleep",
              "the air conditioning is not working"
            ],
            "partly": [
              "good morning",
              "what time is checkout"
            ],
            "off": [
              "I want to buy a ticket for the concert"
            ]
          }
        },
        {
          "id": "reception",
          "task": "Say if you called reception",
          "ahead": false,
          "say": "I'm sorry to hear that. Did you call reception at the time?",
          "hint": "When it happened, did you phone the front desk?",
          "model": "Yes, twice, but nobody came.",
          "options": [
            {
              "id": "yes",
              "any": [
                "yes",
                "yeah",
                "called",
                "phoned",
                "rang",
                "nobody came",
                "no one came",
                "nobody answered",
                "no one answered",
                "no answer",
                "twice",
                "three times",
                "i did",
                "of course"
              ],
              "reply": "Then I'm sorry nobody helped."
            },
            {
              "id": "no",
              "any": [
                "no",
                "didn't call",
                "did not call",
                "didn't",
                "too late",
                "too tired",
                "late at night",
                "midnight",
                "didn't want",
                "didn't think",
                "never"
              ],
              "reply": "You can call us any time, day or night."
            }
          ],
          "tests": {
            "on": [
              "yes twice but nobody came => yes",
              "no I didn't => no",
              "I called but no one answered => yes",
              "no it was too late at night => no"
            ],
            "partly": [
              "the room was very noisy",
              "my room"
            ],
            "off": [
              "my grandmother makes the best soup"
            ]
          }
        },
        {
          "id": "move",
          "task": "Answer the offer of a new room",
          "ahead": false,
          "say": "We're quite full, but I could move you this afternoon.",
          "hint": "A new room this afternoon, or stay where you are?",
          "model": "That would be great, thanks. A quiet one, if possible.",
          "options": [
            {
              "id": "move",
              "any": [
                "move",
                "yes",
                "yeah",
                "change",
                "different room",
                "another room",
                "new room",
                "that would be",
                "please",
                "great",
                "perfect",
                "appreciate",
                "quiet room",
                "sounds good"
              ],
              "reply": "@perfect"
            },
            {
              "id": "stay",
              "any": [
                "stay",
                "rather not",
                "don't want to move",
                "unpack*",
                "packing",
                "hassle",
                "too much",
                "no",
                "one more night",
                "leaving tomorrow",
                "it's okay",
                "it's fine",
                "no thanks",
                "not worth"
              ],
              "reply": "@fair-enough"
            }
          ],
          "tests": {
            "on": [
              "that would be great thanks => move",
              "no I'd rather stay where I am => stay",
              "I don't want to move => stay"
            ],
            "partly": [
              "what about the noise",
              "okay"
            ],
            "off": [
              "I went to the cinema with my friends"
            ]
          }
        },
        {
          "id": "discount",
          "task": "Agree on a fair solution",
          "ahead": false,
          "say": "And would a discount on tonight work for you?",
          "hint": "Ten percent off tonight. Is that fair for you?",
          "model": "That would be great, thanks. I'd appreciate it.",
          "options": [
            {
              "id": "accept",
              "any": [
                "yes",
                "yeah",
                "that works",
                "that's fine",
                "fair",
                "great",
                "that would be",
                "perfect",
                "okay",
                "thank*",
                "appreciate",
                "sounds good",
                "lovely",
                "kind"
              ],
              "reply": "@great"
            },
            {
              "id": "more",
              "any": [
                "breakfast",
                "upgrade",
                "late checkout",
                "late check out",
                "free night",
                "refund",
                "more",
                "whole stay",
                "both",
                "as well",
                "instead",
                "not enough",
                "not fair",
                "unfair",
                "only ten",
                "twenty",
                "fifty",
                "half",
                "percent",
                "something else",
                "anything else"
              ],
              "reply": "I'll see what I can do. Leave it with me."
            }
          ],
          "tests": {
            "on": [
              "that would be great thanks => accept",
              "could I get free breakfast as well => more",
              "that's fair thank you => accept",
              "honestly that's not enough => more"
            ],
            "partly": [
              "about the room"
            ],
            "off": [
              "my phone battery is almost empty"
            ]
          }
        }
      ],
      "close": "I'll let the manager know. Sorry again.",
      "watch": [
        {
          "re": "\\b(?:it'?s|this is|that'?s|it is) (?:unacceptable|ridiculous|a joke|terrible service|a disaster)\\b",
          "better": "it's a real problem for me",
          "note": "Calmer words usually get a better result.",
          "tests": {
            "yes": [
              "the room was noisy, it's unacceptable"
            ],
            "no": [
              "it's a real problem for me"
            ]
          }
        },
        {
          "re": "\\byou (?:must|have to|should|need to) (?:to )?(give|move|change|refund|upgrade)\\b",
          "better": "could you $1",
          "note": "A question gives them room to say yes.",
          "tests": {
            "yes": [
              "you must give me a discount",
              "you have to move me"
            ],
            "no": [
              "could you give me a discount"
            ]
          }
        },
        {
          "re": "\\b(didn't|did not|couldn't|could not|can't|cannot) (sleep|rest) (?:nothing|anything)\\b",
          "better": "$1 $2 at all",
          "note": "Say “I didn’t sleep at all”.",
          "tests": {
            "yes": [
              "I didn't sleep nothing"
            ],
            "no": [
              "I didn't sleep at all"
            ]
          }
        }
      ]
    }
  }
}