{
  "id": "taxi",
  "title": "Taking a taxi",
  "group": "travel",
  "partner": {
    "name": "Joe",
    "role": "taxi driver"
  },
  "topic": [
    "taxi",
    "cab",
    "driver",
    "drive*",
    "ride",
    "fare",
    "meter",
    "address",
    "route",
    "traffic",
    "motorway",
    "stop",
    "pound*",
    "receipt",
    "cash",
    "change",
    "tip*",
    "minute*",
    "seatbelt",
    "journey",
    "detour",
    "airport",
    "station",
    "pay*"
  ],
  "levels": {
    "A2": {
      "goal": "Say where you are going, ask how long and how much, and pay.",
      "phrases": [
        {
          "text": "To the station, please.",
          "re": "\\bto the [a-z]+( [a-z]+)?,? please\\b"
        },
        {
          "text": "How long does it take?",
          "re": "\\bhow long does it take\\b"
        },
        {
          "text": "How much is it?",
          "re": "\\bhow much is (it|that)\\b"
        },
        {
          "text": "By card, please.",
          "re": "\\bby card\\b"
        },
        {
          "text": "Keep the change.",
          "re": "\\bkeep the change\\b"
        }
      ],
      "words": [
        {
          "w": "hop in",
          "m": "get in the car"
        },
        {
          "w": "the fare",
          "m": "the money you pay for the taxi"
        },
        {
          "w": "keep the change",
          "m": "the driver can keep the extra money"
        }
      ],
      "steps": [
        {
          "id": "where",
          "task": "Say where you're going",
          "say": "Hi there. Where to?",
          "hint": "Where do you want to go? The station? A hotel?",
          "model": "To the train station, please.",
          "options": [
            {
              "id": "place",
              "any": [
                "station",
                "train station",
                "bus station",
                "airport",
                "hotel",
                "city centre",
                "town centre",
                "centre",
                "museum",
                "hospital",
                "university",
                "shopping centre",
                "mall",
                "beach",
                "port",
                "harbour",
                "stadium",
                "theatre",
                "street",
                "road",
                "avenue",
                "square",
                "hilton",
                "marriott",
                "downtown",
                "old town",
                "home",
                "address",
                "/\\b(?:go|going|take me|drive me|get|heading) to [a-z]+/",
                "/(?:^|\\| )to (?:the )?[a-z]+/"
              ],
              "reply": "Okay, hop in."
            }
          ],
          "tests": {
            "on": [
              "To the train station, please",
              "the airport please",
              "can you take me to the Grand Hotel",
              "King Street please",
              "to Oxford"
            ],
            "partly": [
              "hello",
              "how much is it"
            ],
            "off": [
              "my brother plays tennis on Sundays"
            ],
            "unclear": [
              "hmm"
            ]
          }
        },
        {
          "id": "time",
          "task": "Ask how long it takes",
          "say": "The traffic is bad today. Any questions?",
          "hint": "Do you want to know the time? Ask how long it takes.",
          "model": "How long does it take?",
          "options": [
            {
              "id": "long",
              "any": [
                "how long",
                "how many minutes",
                "minutes",
                "long",
                "how far",
                "far",
                "what time",
                "when",
                "arrive",
                "get there",
                "take"
              ],
              "reply": "About twenty minutes."
            },
            {
              "id": "hurry",
              "any": [
                "hurry",
                "in a rush",
                "late",
                "quick*",
                "fast*",
                "train at",
                "flight at",
                "plane at"
              ],
              "reply": "Don't worry. Twenty minutes, maybe less."
            }
          ],
          "tests": {
            "on": [
              "how long does it take => long",
              "I'm late can you be quick => hurry",
              "is it far => long",
              "when do we get there => long",
              "please hurry my train is at ten => hurry"
            ],
            "partly": [
              "to the station please",
              "can I pay by card"
            ],
            "off": [
              "I really like chocolate cake"
            ]
          }
        },
        {
          "id": "price",
          "task": "Ask how much it is",
          "ahead": false,
          "say": "Okay, here we are.",
          "hint": "Do you want to know the price? Ask how much it is.",
          "model": "Thank you. How much is it?",
          "options": [
            {
              "id": "price",
              "any": [
                "how much",
                "price",
                "cost*",
                "fare",
                "what do i owe",
                "owe",
                "pay",
                "money"
              ],
              "reply": "That's fourteen pounds fifty, please."
            }
          ],
          "tests": {
            "on": [
              "thank you how much is it",
              "how much do I pay",
              "what's the fare"
            ],
            "partly": [
              "thank you",
              "the station"
            ],
            "off": [
              "my sister is a teacher in a big school"
            ]
          }
        },
        {
          "id": "pay",
          "task": "Pay the driver",
          "say": "Cash or card?",
          "hint": "Do you want to pay with money or with a card?",
          "model": "By card, please.",
          "options": [
            {
              "id": "change",
              "any": [
                "keep the change",
                "keep it",
                "keep change",
                "for you"
              ],
              "reply": "Oh, thank you very much!"
            },
            {
              "id": "card",
              "any": [
                "card",
                "by card",
                "contactless",
                "tap",
                "apple pay",
                "google pay",
                "my phone",
                "credit card",
                "debit card"
              ],
              "reply": "Sure, tap here."
            },
            {
              "id": "cash",
              "any": [
                "cash",
                "here you are",
                "here you go",
                "money",
                "fifteen",
                "twenty",
                "ten pound*",
                "note"
              ],
              "reply": "Thanks. Here's your change."
            }
          ],
          "tests": {
            "on": [
              "by card please => card",
              "cash here you are => cash",
              "here is twenty keep the change => change",
              "can I pay with my phone => card"
            ],
            "partly": [
              "how much is it",
              "the station"
            ],
            "off": [
              "I watched a funny film yesterday"
            ]
          }
        }
      ],
      "close": "Thanks. Have a good day!",
      "watch": [
        {
          "re": "^(?:\\w+,? )?how long it takes?\\b",
          "better": "how long does it take",
          "note": "In a question, use “does”: how long does it take?",
          "tests": {
            "yes": [
              "how long it takes",
              "okay how long it take"
            ],
            "no": [
              "how long does it take",
              "I know how long it takes"
            ]
          }
        },
        {
          "re": "\\b(to|at) (station|airport|train station|bus station|hospital|city centre)\\b",
          "better": "$1 the $2",
          "note": "Use “the” here: to the station.",
          "tests": {
            "yes": [
              "to airport please",
              "go to train station"
            ],
            "no": [
              "to the airport please",
              "to Oxford Street"
            ]
          }
        },
        {
          "re": "\\b(pay|paying) with card\\b",
          "better": "$1 by card",
          "note": "We say “pay by card”.",
          "tests": {
            "yes": [
              "can I pay with card"
            ],
            "no": [
              "can I pay by card",
              "can I pay with my card"
            ]
          }
        }
      ]
    },
    "B1": {
      "goal": "Give the address and a landmark, ask for a stop, pay by card and get a receipt.",
      "phrases": [
        {
          "text": "It's near the…",
          "re": "\\bit'?s (near|next to|opposite|behind)\\b"
        },
        {
          "text": "Could you stop at…?",
          "re": "\\bstop at\\b"
        },
        {
          "text": "on the way",
          "re": "\\bon the way\\b"
        },
        {
          "text": "Can I pay by card?",
          "re": "\\bpay by card\\b"
        },
        {
          "text": "Could I have a receipt?",
          "re": "\\b(could|can) i (have|get) a receipt\\b"
        }
      ],
      "words": [
        {
          "w": "a landmark",
          "m": "a building people know, used to find a place"
        },
        {
          "w": "a cash machine",
          "m": "a machine in the wall that gives you money"
        },
        {
          "w": "a receipt",
          "m": "a paper that shows what you paid"
        }
      ],
      "steps": [
        {
          "id": "address",
          "task": "Give the address and a landmark",
          "say": "Evening. Where are we going?",
          "hint": "The address? A street, and something near it?",
          "model": "Twelve Park Road, please. It's near the big supermarket.",
          "options": [
            {
              "id": "landmark",
              "all": [
                "/\\b(?:near|opposite|next to|behind|across from|close to|beside|by the|in front of)\\b/"
              ],
              "any": [
                "street",
                "road",
                "avenue",
                "lane",
                "square",
                "place",
                "close",
                "drive",
                "hotel",
                "station",
                "park",
                "address"
              ],
              "reply": "@perfect"
            },
            {
              "id": "address",
              "any": [
                "street",
                "road",
                "avenue",
                "lane",
                "square",
                "address",
                "number",
                "hotel",
                "station",
                "airport",
                "centre",
                "/\\b(?:go|going|take me|drive me|get|heading) to [a-z]+/",
                "/(?:^|\\| )to (?:the )?[a-z]+/"
              ],
              "reply": "Okay. Is that near anything?",
              "next": "landmark"
            }
          ],
          "tests": {
            "on": [
              "Twelve Park Road please it's near the big supermarket => landmark",
              "12 Park Road please => address",
              "King Street opposite the cinema => landmark",
              "to the Grand Hotel please => address"
            ],
            "partly": [
              "good evening",
              "can I pay by card"
            ],
            "off": [
              "my cousin is getting married next summer"
            ]
          }
        },
        {
          "id": "landmark",
          "jump": true,
          "task": "Give a landmark",
          "hint": "Is it near a shop, a park, or a station?",
          "model": "Yes, it's opposite the big supermarket.",
          "options": [
            {
              "id": "place",
              "any": [
                "near",
                "opposite",
                "next to",
                "behind",
                "across",
                "close to",
                "beside",
                "corner",
                "shop",
                "supermarket",
                "park",
                "station",
                "school",
                "church",
                "hospital",
                "hotel",
                "cafe",
                "pub",
                "bank",
                "cinema",
                "restaurant",
                "petrol station",
                "bridge",
                "lights"
              ],
              "reply": "@got-it"
            }
          ],
          "tests": {
            "on": [
              "yes it's opposite the big supermarket",
              "next to the park",
              "near the hospital"
            ],
            "partly": [
              "number twelve"
            ],
            "off": [
              "I usually cook pasta on Fridays"
            ]
          }
        },
        {
          "id": "stop",
          "task": "Ask for a stop or a quicker way",
          "ahead": false,
          "say": "About twenty minutes. Anything on the way?",
          "hint": "Stop somewhere, like a cash machine? Or a quicker way?",
          "model": "Could you stop at a cash machine on the way?",
          "options": [
            {
              "id": "stop",
              "any": [
                "stop",
                "cash machine",
                "atm",
                "cashpoint",
                "shop",
                "pharmacy",
                "chemist",
                "pick up",
                "wait for me",
                "on the way",
                "pull over",
                "quick stop"
              ],
              "reply": "Sure, there's one on the corner."
            },
            {
              "id": "quick",
              "any": [
                "quick*",
                "fast*",
                "hurry",
                "rush",
                "late",
                "shortcut",
                "short cut",
                "motorway",
                "avoid",
                "traffic",
                "route",
                "ring road"
              ],
              "reply": "I'll take the ring road, then."
            },
            {
              "id": "none",
              "any": [
                "no",
                "nothing",
                "that's all",
                "no thanks",
                "straight there",
                "go straight",
                "just go"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "could you stop at a cash machine on the way => stop",
              "I'm in a hurry is there a quicker way => quick",
              "no thanks straight there => none",
              "can we avoid the traffic => quick"
            ],
            "partly": [
              "Park Road",
              "can I pay by card"
            ],
            "off": [
              "my favourite singer has a new album"
            ]
          }
        },
        {
          "id": "pay",
          "task": "Pay by card",
          "ahead": false,
          "say": "Here we are. That's twenty-two pounds.",
          "hint": "Do you want to pay by card or cash?",
          "model": "Can I pay by card?",
          "options": [
            {
              "id": "card",
              "any": [
                "card",
                "by card",
                "contactless",
                "tap",
                "apple pay",
                "google pay",
                "my phone",
                "credit card",
                "debit card"
              ],
              "reply": "Sure, just tap here."
            },
            {
              "id": "cash",
              "any": [
                "cash",
                "here you are",
                "here you go",
                "twenty-five",
                "twenty five",
                "keep the change",
                "note"
              ],
              "reply": "@thanks"
            }
          ],
          "tests": {
            "on": [
              "can I pay by card => card",
              "here you are twenty five keep the change => cash",
              "contactless please => card"
            ],
            "partly": [
              "twenty minutes",
              "Park Road"
            ],
            "off": [
              "I go swimming every morning before work"
            ]
          }
        },
        {
          "id": "receipt",
          "task": "Ask for a receipt",
          "say": "All done. Anything else?",
          "hint": "Do you need a receipt?",
          "model": "Could I have a receipt, please?",
          "options": [
            {
              "id": "receipt",
              "any": [
                "receipt",
                "recipe",
                "invoice",
                "paper",
                "for work",
                "expenses",
                "email it",
                "copy"
              ],
              "reply": "Here you are."
            },
            {
              "id": "none",
              "any": [
                "no",
                "that's all",
                "nothing",
                "no thanks",
                "that's it",
                "all good",
                "bye",
                "goodbye",
                "thank*"
              ],
              "reply": "@no-problem"
            }
          ],
          "tests": {
            "on": [
              "could I have a receipt please => receipt",
              "no thanks that's all => none",
              "can I get a receipt for work => receipt"
            ],
            "partly": [
              "the cash machine"
            ],
            "off": [
              "my dog likes long walks in the forest"
            ]
          }
        }
      ],
      "close": "Have a good evening!",
      "watch": [
        {
          "re": "\\b(a|the) recipe\\b",
          "better": "$1 receipt",
          "note": "A “recipe” is for cooking. You want a “receipt”.",
          "tests": {
            "yes": [
              "could I have a recipe please"
            ],
            "no": [
              "could I have a receipt please"
            ]
          }
        },
        {
          "re": "\\bstop (?:to|in) (the|a)\\b",
          "better": "stop at $1",
          "note": "We “stop at” a place: stop at the bank.",
          "tests": {
            "yes": [
              "could you stop to the cash machine",
              "stop in a shop"
            ],
            "no": [
              "could you stop at the cash machine"
            ]
          }
        },
        {
          "re": "\\bnear to (the|a|my)\\b",
          "better": "near $1",
          "note": "Say “near the park”, without “to”.",
          "tests": {
            "yes": [
              "it's near to the park"
            ],
            "no": [
              "it's near the park",
              "next to the park"
            ]
          }
        }
      ]
    },
    "B2": {
      "goal": "The fare looks too high: question it politely, agree a fair price and decide on a tip.",
      "phrases": [
        {
          "text": "Is there a fixed fare?",
          "re": "\\bfixed (fare|price|rate)\\b"
        },
        {
          "text": "Is this the quickest way?",
          "re": "\\b(quickest|fastest|shortest) way\\b"
        },
        {
          "text": "That seems a bit high.",
          "re": "\\bseems? (a bit |rather |quite |a little )?high\\b"
        },
        {
          "text": "Shall we call it…?",
          "re": "\\bcall it\\b"
        },
        {
          "text": "I'll round it up.",
          "re": "\\bround (it )?up\\b"
        }
      ],
      "words": [
        {
          "w": "a fixed fare",
          "m": "a price you agree before the ride"
        },
        {
          "w": "a detour",
          "m": "a longer way round"
        },
        {
          "w": "round it up",
          "m": "pay a little more, to an easy number"
        }
      ],
      "steps": [
        {
          "id": "fixed",
          "task": "Agree the price before you go",
          "say": "The airport? Hop in, I'll start the meter.",
          "hint": "Use the meter, or ask about a fixed price first?",
          "model": "Before we go, is there a fixed fare to the airport?",
          "options": [
            {
              "id": "fixed",
              "any": [
                "fixed",
                "flat rate",
                "flat fare",
                "set price",
                "rough idea",
                "roughly",
                "estimate",
                "how much",
                "ballpark",
                "before we go",
                "usually cost*",
                "usually come to",
                "price"
              ],
              "reply": "No, but it's usually about forty."
            },
            {
              "id": "meter",
              "any": [
                "meter",
                "that's fine",
                "go ahead",
                "let's go",
                "sounds good",
                "fine by me",
                "no problem"
              ],
              "reply": "@right"
            }
          ],
          "tests": {
            "on": [
              "before we go is there a fixed fare to the airport => fixed",
              "roughly how much will it be => fixed",
              "the meter's fine go ahead => meter"
            ],
            "partly": [
              "good evening",
              "the airport please"
            ],
            "off": [
              "I have been learning to play the violin"
            ]
          }
        },
        {
          "id": "route",
          "task": "Question the route politely",
          "ahead": false,
          "say": "Traffic's bad, so I'll go the back way. All right?",
          "hint": "Ask if it's the quickest way, or ask for the motorway.",
          "model": "Is this the quickest way? I'd rather take the motorway.",
          "options": [
            {
              "id": "question",
              "any": [
                "quickest",
                "fastest",
                "shortest",
                "quicker",
                "faster",
                "shorter",
                "longer",
                "long way",
                "direct*",
                "motorway",
                "main road",
                "normal way",
                "usual way",
                "satnav",
                "sat nav",
                "map",
                "detour",
                "why",
                "are you sure",
                "rather",
                "prefer",
                "cost more",
                "more expensive"
              ],
              "reply": "Fair point. Back to the motorway."
            },
            {
              "id": "ok",
              "any": [
                "that's fine",
                "fine",
                "okay",
                "ok",
                "sure",
                "no problem",
                "go ahead",
                "trust you",
                "you know best",
                "up to you",
                "whatever you think"
              ],
              "reply": "@great"
            }
          ],
          "tests": {
            "on": [
              "is this the quickest way I'd rather take the motorway => question",
              "sure you know best => ok",
              "why are we going this way => question",
              "that's fine go ahead => ok"
            ],
            "partly": [
              "is there a fixed fare"
            ],
            "off": [
              "my neighbour has three noisy cats"
            ]
          }
        },
        {
          "id": "fare",
          "task": "Question the fare politely",
          "ahead": false,
          "say": "Here we are. That's fifty-eight pounds.",
          "hint": "More than you expected? It's usually about forty.",
          "model": "Sorry, that seems a bit high. You said about forty.",
          "options": [
            {
              "id": "high",
              "any": [
                "high",
                "too much",
                "a lot",
                "expensive",
                "more than",
                "expected",
                "you said",
                "forty",
                "usually",
                "normally",
                "seems",
                "steep",
                "meter",
                "wrong",
                "mistake",
                "detour",
                "long way",
                "fair",
                "last time",
                "back way",
                "not right",
                "fifty-eight",
                "fifty eight",
                "really"
              ],
              "reply": "You're right. Call it forty-five?"
            },
            {
              "id": "pay",
              "any": [
                "here you are",
                "here you go",
                "by card",
                "card",
                "cash",
                "okay",
                "fine",
                "that's fine",
                "no problem",
                "contactless"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "sorry that seems a bit high you said about forty => high",
              "okay here you are => pay",
              "that's much more than I expected => high",
              "I think the meter's wrong => high"
            ],
            "partly": [
              "is this the quickest way",
              "the airport"
            ],
            "off": [
              "we are painting the kitchen this weekend"
            ]
          }
        },
        {
          "id": "tip",
          "task": "Decide on a tip",
          "ahead": false,
          "say": "Right. Would you like to add a tip?",
          "hint": "Add a little extra for the driver, or no tip?",
          "model": "I'll round it up to fifty. Thanks for your help.",
          "options": [
            {
              "id": "notip",
              "any": [
                "no tip",
                "not this time",
                "no thanks",
                "just the fare",
                "as it is",
                "without a tip",
                "i'd rather not",
                "no",
                "that's all",
                "not today"
              ],
              "reply": "@no-problem"
            },
            {
              "id": "tip",
              "any": [
                "round* up",
                "tip",
                "keep the change",
                "add",
                "extra",
                "call it fifty",
                "fifty",
                "five pounds",
                "ten percent",
                "couple of pounds",
                "plus",
                "yes",
                "sure",
                "of course"
              ],
              "reply": "That's kind of you, thanks."
            }
          ],
          "tests": {
            "on": [
              "I'll round it up to fifty => tip",
              "no tip this time sorry => notip",
              "sure add five pounds => tip",
              "no thanks just the fare => notip"
            ],
            "partly": [
              "is this the quickest way"
            ],
            "off": [
              "my grandmother grows tomatoes in her garden"
            ]
          }
        }
      ],
      "close": "Thanks. Have a good flight!",
      "watch": [
        {
          "re": "\\b(price|fare) (is|seems|looks) (too |very |a bit |really |quite )?expensive\\b",
          "better": "$1 $2 $3high",
          "note": "Prices are high. Things are expensive.",
          "tests": {
            "yes": [
              "the price is too expensive",
              "the fare seems a bit expensive"
            ],
            "no": [
              "the fare seems a bit high",
              "the taxi is expensive"
            ]
          }
        },
        {
          "re": "\\b(make|made) (a|the) (long way|longer way|detour)\\b",
          "better": "{take:$1} $2 $3",
          "note": "We take a route: take the long way.",
          "tests": {
            "yes": [
              "you made a detour",
              "you made the long way"
            ],
            "no": [
              "you took the long way"
            ]
          }
        },
        {
          "re": "\\b(give|leave|add) tip\\b",
          "better": "$1 a tip",
          "note": "“Tip” needs “a”: leave a tip.",
          "tests": {
            "yes": [
              "I don't want to give tip"
            ],
            "no": [
              "I will leave a tip",
              "I'd like to add a tip"
            ]
          }
        }
      ]
    }
  }
}
