{
  "id": "train-ticket",
  "title": "Buying a train ticket",
  "group": "travel",
  "partner": {
    "name": "Kate",
    "role": "ticket office"
  },
  "topic": [
    "train*",
    "ticket*",
    "platform",
    "station",
    "single",
    "one way",
    "return",
    "journey",
    "travel*",
    "railcard",
    "rail card",
    "delay*",
    "cancel*",
    "connection",
    "refund*",
    "fare",
    "seat*",
    "timetable",
    "depart*",
    "leave*",
    "arrive*",
    "change",
    "booking",
    "pound*",
    "off-peak"
  ],
  "levels": {
    "A2": {
      "goal": "Buy a one way or return ticket and find out the time and platform.",
      "phrases": [
        {
          "text": "A ticket to…, please.",
          "re": "\\bticket to\\b"
        },
        {
          "text": "A return, please.",
          "re": "\\breturn\\b"
        },
        {
          "text": "One way, please.",
          "re": "\\bone way\\b"
        },
        {
          "text": "What time is the next train?",
          "re": "\\bwhat time is the next train\\b"
        },
        {
          "text": "Which platform is it?",
          "re": "\\bwhich platform\\b"
        }
      ],
      "words": [
        {
          "w": "one way",
          "m": "a ticket to go there, not to come back"
        },
        {
          "w": "a return",
          "m": "a ticket there and back"
        },
        {
          "w": "a platform",
          "m": "the place where you get on the train"
        }
      ],
      "steps": [
        {
          "id": "where",
          "task": "Say where you're going",
          "say": "Hello. Where are you travelling to?",
          "hint": "Which town or city? Oxford? Brighton?",
          "model": "A ticket to Oxford, please.",
          "options": [
            {
              "id": "place",
              "any": [
                "london",
                "oxford",
                "cambridge",
                "brighton",
                "bath",
                "bristol",
                "york",
                "leeds",
                "manchester",
                "liverpool",
                "birmingham",
                "edinburgh",
                "glasgow",
                "cardiff",
                "reading",
                "newcastle",
                "nottingham",
                "sheffield",
                "canterbury",
                "dover",
                "windsor",
                "exeter",
                "plymouth",
                "norwich",
                "durham",
                "leicester",
                "southampton",
                "portsmouth",
                "airport",
                "city centre",
                "paris",
                "/\\bticket (?:to|for) [a-z]+/",
                "/\\b(?:go|going|travel\\w*|get|heading) to [a-z]+/",
                "/(?:^|\\| )to [a-z]+/"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "a ticket to Oxford please",
              "Brighton",
              "I'm going to York",
              "to Bath please",
              "one ticket for Cambridge"
            ],
            "partly": [
              "hello",
              "a return please"
            ],
            "off": [
              "my brother plays tennis on Sundays"
            ],
            "unclear": [
              "hmm"
            ]
          }
        },
        {
          "id": "type",
          "task": "Choose one way or return",
          "say": "One way or return?",
          "hint": "One way is just there. A return is there and back.",
          "model": "A return, please. I'm coming back today.",
          "options": [
            {
              "id": "single",
              "any": [
                "one way",
                "single",
                "just one way",
                "only one way",
                "not coming back",
                "just there",
                "only there"
              ],
              "reply": "That's fourteen pounds, please."
            },
            {
              "id": "return",
              "any": [
                "return",
                "there and back",
                "round trip",
                "coming back",
                "come back",
                "back today",
                "back tomorrow",
                "both ways",
                "go and back",
                "go and return"
              ],
              "reply": "That's twenty-four pounds, please."
            }
          ],
          "tests": {
            "on": [
              "a return please I'm coming back today => return",
              "one way please => single",
              "single I'm not coming back => single",
              "there and back => return"
            ],
            "partly": [
              "a ticket to Oxford",
              "which platform"
            ],
            "off": [
              "I like to read books in the evening"
            ]
          }
        },
        {
          "id": "time",
          "task": "Ask when the train leaves",
          "say": "Here's your ticket. Anything else?",
          "hint": "Do you want to know the time? Ask about the next train.",
          "model": "Yes. What time is the next train?",
          "options": [
            {
              "id": "time",
              "any": [
                "what time",
                "when",
                "next train",
                "next one",
                "leave*",
                "depart*",
                "time",
                "timetable",
                "how long",
                "how often"
              ],
              "reply": "Ten fifteen. That's in twenty minutes."
            }
          ],
          "tests": {
            "on": [
              "what time is the next train",
              "when does it leave",
              "when is the next one"
            ],
            "partly": [
              "a return please",
              "thank you"
            ],
            "off": [
              "my favourite colour is blue"
            ]
          }
        },
        {
          "id": "platform",
          "task": "Ask which platform",
          "say": "Do you know where to go?",
          "hint": "Ask which platform the train leaves from.",
          "model": "No. Which platform is it?",
          "options": [
            {
              "id": "platform",
              "any": [
                "platform",
                "which platform",
                "where",
                "track",
                "which way",
                "don't know",
                "not sure",
                "no idea"
              ],
              "reply": "Platform four, over the bridge."
            },
            {
              "id": "know",
              "any": [
                "i know",
                "i'll find",
                "i can see",
                "the board",
                "the screen",
                "i'll check",
                "i can find"
              ],
              "reply": "@great"
            }
          ],
          "tests": {
            "on": [
              "which platform is it => platform",
              "no I don't know => platform",
              "yes I'll check the board => know",
              "where do I go => platform"
            ],
            "partly": [
              "a return ticket",
              "is it a fast train"
            ],
            "off": [
              "I had pizza for dinner"
            ]
          }
        }
      ],
      "close": "Have a good journey!",
      "watch": [
        {
          "re": "\\bgo and (back|return)\\b",
          "better": "return",
          "note": "A ticket there and back is a “return”.",
          "tests": {
            "yes": [
              "a go and return ticket",
              "go and back please"
            ],
            "no": [
              "a return ticket please"
            ]
          }
        },
        {
          "re": "\\bin platform\\b",
          "better": "on platform",
          "note": "Trains leave from a platform: on platform four.",
          "tests": {
            "yes": [
              "is it in platform four"
            ],
            "no": [
              "is it on platform four",
              "which platform"
            ]
          }
        },
        {
          "re": "^(?:\\w+,? )?what time (the|my) train (leaves|goes|departs|leave|go)\\b",
          "better": "what time does $1 train leave",
          "note": "In a question, use “does”: what time does the train leave?",
          "tests": {
            "yes": [
              "what time the train leaves",
              "okay what time my train goes"
            ],
            "no": [
              "what time does the train leave",
              "I know what time the train leaves"
            ]
          }
        }
      ]
    },
    "B1": {
      "goal": "Your train is cancelled: ask about the next one and a cheaper ticket.",
      "phrases": [
        {
          "text": "When's the next one?",
          "re": "\\bwhen'?s the next (one|train)\\b|\\bwhen is the next (one|train)\\b"
        },
        {
          "text": "Do I have to change?",
          "re": "\\bhave to change\\b"
        },
        {
          "text": "Is there anything cheaper?",
          "re": "\\banything cheaper\\b"
        },
        {
          "text": "I've got a railcard.",
          "re": "\\b(i'?ve got|i have) a rail ?card\\b"
        },
        {
          "text": "Which platform does it leave from?",
          "re": "\\bwhich platform\\b"
        }
      ],
      "words": [
        {
          "w": "cancelled",
          "m": "it will not run today"
        },
        {
          "w": "off-peak",
          "m": "a quieter time, with cheaper tickets"
        },
        {
          "w": "a railcard",
          "m": "a card that makes train tickets cheaper"
        }
      ],
      "steps": [
        {
          "id": "where",
          "task": "Say where you're going",
          "say": "Morning. Where are you heading?",
          "hint": "Which city? York? Leeds?",
          "model": "I'm going to York, on the ten o'clock train.",
          "options": [
            {
              "id": "place",
              "any": [
                "london",
                "oxford",
                "cambridge",
                "brighton",
                "bath",
                "bristol",
                "york",
                "leeds",
                "manchester",
                "liverpool",
                "birmingham",
                "edinburgh",
                "glasgow",
                "cardiff",
                "reading",
                "newcastle",
                "nottingham",
                "sheffield",
                "canterbury",
                "dover",
                "windsor",
                "exeter",
                "plymouth",
                "norwich",
                "durham",
                "leicester",
                "southampton",
                "portsmouth",
                "airport",
                "city centre",
                "paris",
                "/\\bticket (?:to|for) [a-z]+/",
                "/\\b(?:go|going|travel\\w*|get|heading) to [a-z]+/",
                "/(?:^|\\| )to [a-z]+/"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "I'm going to York on the ten o'clock train",
              "York please",
              "a single to Leeds"
            ],
            "partly": [
              "good morning",
              "is there anything cheaper"
            ],
            "off": [
              "my sister lives with two cats"
            ]
          }
        },
        {
          "id": "next",
          "task": "Ask about the next train",
          "ahead": false,
          "say": "Sorry, the ten o'clock is cancelled.",
          "hint": "Ask about the next train.",
          "model": "Oh no. When's the next one?",
          "options": [
            {
              "id": "next",
              "any": [
                "/\\bnext (?:one|train)\\b/",
                "when",
                "when's",
                "what time",
                "another",
                "other train*",
                "later",
                "alternative",
                "how long",
                "wait",
                "direct",
                "change",
                "what can i do",
                "what now",
                "options"
              ],
              "reply": "Ten forty, but you change at Leeds."
            },
            {
              "id": "bus",
              "any": [
                "bus",
                "coach",
                "replacement",
                "taxi"
              ],
              "reply": "There's a bus at ten twenty."
            }
          ],
          "partly": [
            "oh no",
            "really",
            "seriously",
            "why",
            "again"
          ],
          "tests": {
            "on": [
              "oh no when's the next one => next",
              "is there a bus instead => bus",
              "what other trains are there => next",
              "how long do I have to wait => next",
              "what can I do now => next"
            ],
            "partly": [
              "oh no really",
              "York please"
            ],
            "off": [
              "I bought a new jacket yesterday"
            ]
          }
        },
        {
          "id": "cheaper",
          "task": "Ask for a cheaper ticket",
          "ahead": false,
          "say": "A single to York is forty-two pounds.",
          "hint": "Got a railcard? Or ask for a cheaper ticket.",
          "model": "Is there anything cheaper? I've got a railcard.",
          "options": [
            {
              "id": "railcard",
              "any": [
                "railcard",
                "rail card",
                "discount",
                "student",
                "young person*",
                "senior",
                "sixteen twenty five",
                "16 25",
                "16-25",
                "two together"
              ],
              "reply": "With the railcard, it's twenty-eight."
            },
            {
              "id": "cheaper",
              "any": [
                "cheaper",
                "cheap",
                "off-peak",
                "off peak",
                "less",
                "advance",
                "save",
                "deal",
                "offer",
                "expensive",
                "too much",
                "a lot"
              ],
              "reply": "Off-peak, after eleven, is thirty."
            },
            {
              "id": "pay",
              "any": [
                "card",
                "cash",
                "here you are",
                "here you go",
                "that's fine",
                "okay",
                "fine",
                "contactless"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "is there anything cheaper I've got a railcard => railcard",
              "that's expensive is there anything cheaper => cheaper",
              "okay by card please => pay",
              "do you have a student discount => railcard"
            ],
            "partly": [
              "the ten forty train",
              "oh no"
            ],
            "off": [
              "I like walking in the mountains"
            ]
          }
        },
        {
          "id": "extra",
          "task": "Ask about the platform or a seat",
          "say": "There you go. Anything else?",
          "hint": "Do you know the platform? Do you want a seat?",
          "model": "Which platform does it leave from?",
          "options": [
            {
              "id": "platform",
              "any": [
                "platform",
                "which platform",
                "where",
                "track",
                "which way"
              ],
              "reply": "Platform two. Check the board."
            },
            {
              "id": "seat",
              "any": [
                "seat",
                "reserve*",
                "reservation",
                "sit",
                "busy",
                "quiet coach",
                "window"
              ],
              "reply": "No need, it's usually quiet."
            },
            {
              "id": "none",
              "any": [
                "no",
                "nothing",
                "that's all",
                "that's it",
                "no thanks",
                "all good",
                "i'm fine",
                "i'm good",
                "thank*"
              ]
            }
          ],
          "tests": {
            "on": [
              "which platform does it leave from => platform",
              "can I reserve a seat => seat",
              "no that's all thanks => none"
            ],
            "partly": [
              "to York"
            ],
            "off": [
              "my father is a good cook"
            ]
          }
        }
      ],
      "close": "Have a good trip!",
      "watch": [
        {
          "re": "\\b(is|was|got|been) cancel\\b",
          "better": "$1 cancelled",
          "note": "Use “cancelled”: the train is cancelled.",
          "tests": {
            "yes": [
              "the train is cancel"
            ],
            "no": [
              "the train is cancelled",
              "can I cancel"
            ]
          }
        },
        {
          "re": "\\bis there any (cheaper|cheap|other|later|earlier) (ticket|train|one)\\b",
          "better": "is there a $1 $2",
          "note": "For one thing, use “a”: is there a cheaper ticket?",
          "tests": {
            "yes": [
              "is there any cheaper ticket"
            ],
            "no": [
              "is there a cheaper ticket",
              "is there anything cheaper"
            ]
          }
        },
        {
          "re": "\\blate (five|ten|fifteen|twenty|thirty|forty|\\d+) minutes\\b",
          "better": "$1 minutes late",
          "note": "Put the time first: twenty minutes late.",
          "tests": {
            "yes": [
              "the train is late twenty minutes"
            ],
            "no": [
              "the train is twenty minutes late"
            ]
          }
        }
      ]
    },
    "B2": {
      "goal": "You missed your connection: get your ticket changed for free and ask about compensation.",
      "phrases": [
        {
          "text": "I missed my connection.",
          "re": "\\bmissed (my|the) connection\\b"
        },
        {
          "text": "It wasn't my fault.",
          "re": "\\b(wasn'?t|was not) my fault\\b"
        },
        {
          "text": "Could you change it at no extra cost?",
          "re": "\\bno extra (cost|charge)\\b"
        },
        {
          "text": "Am I entitled to…?",
          "re": "\\bentitled to\\b"
        },
        {
          "text": "How do I make a claim?",
          "re": "\\b(make|making) a claim\\b"
        }
      ],
      "words": [
        {
          "w": "valid",
          "m": "you are allowed to use it"
        },
        {
          "w": "a connection",
          "m": "the second train you have to catch"
        },
        {
          "w": "compensation",
          "m": "money for a problem that was not your fault"
        }
      ],
      "steps": [
        {
          "id": "problem",
          "task": "Explain what went wrong",
          "say": "Next, please. What's the problem?",
          "hint": "Did you miss a train? Wrong ticket?",
          "model": "My first train was late, so I missed my connection.",
          "options": [
            {
              "id": "missed",
              "any": [
                "miss*",
                "connection",
                "connecting",
                "late",
                "delay*",
                "cancel*",
                "left without",
                "too late",
                "stuck",
                "wrong ticket",
                "wrong train",
                "mistake",
                "wrong"
              ],
              "reply": "@i-see"
            }
          ],
          "partly": [
            "problem",
            "help",
            "question"
          ],
          "tests": {
            "on": [
              "my first train was late so I missed my connection",
              "I bought the wrong ticket",
              "my train was delayed and now I am stuck"
            ],
            "partly": [
              "I have a problem with my ticket",
              "good afternoon"
            ],
            "off": [
              "I am looking for a good Italian restaurant"
            ]
          }
        },
        {
          "id": "change",
          "task": "Ask to change it without paying",
          "ahead": false,
          "say": "It's only valid on the train you missed. A new one's sixty pounds.",
          "hint": "Ask to use it on the next train, for free.",
          "model": "It wasn't my fault. Could you change it at no extra cost?",
          "options": [
            {
              "id": "change",
              "any": [
                "change",
                "switch",
                "swap",
                "transfer",
                "next train",
                "later train",
                "use it",
                "use my ticket",
                "valid",
                "no extra",
                "free",
                "without paying",
                "not my fault",
                "fault",
                "delay*",
                "late",
                "connection",
                "endorse*",
                "put me on",
                "unfair",
                "not fair",
                "manager",
                "don't want to pay",
                "pay again",
                "pay twice"
              ],
              "reply": "The delay was ours, so I'll change it for free."
            },
            {
              "id": "pay",
              "any": [
                "i'll pay",
                "buy a new",
                "new ticket",
                "pay for it",
                "by card",
                "that's fine"
              ],
              "reply": "You don't need to. The delay was ours."
            }
          ],
          "tests": {
            "on": [
              "it wasn't my fault could you change it at no extra cost => change",
              "okay I'll pay by card => pay",
              "can I use my ticket on the next train => change",
              "that's not fair the first train was late => change",
              "I don't want to pay again => change"
            ],
            "partly": [
              "sixty pounds",
              "a return"
            ],
            "off": [
              "my children love the beach in summer"
            ]
          }
        },
        {
          "id": "refund",
          "task": "Ask about compensation",
          "say": "You're on the twelve fifteen. Anything else?",
          "hint": "Ask about money back for the delay.",
          "model": "Am I entitled to any compensation for the delay?",
          "options": [
            {
              "id": "comp",
              "any": [
                "compensat*",
                "refund*",
                "money back",
                "claim",
                "entitled",
                "delay repay",
                "voucher",
                "reimburse*",
                "pay back",
                "pay me",
                "rights"
              ],
              "reply": "Yes, it was over thirty minutes late."
            },
            {
              "id": "none",
              "any": [
                "no",
                "nothing",
                "that's all",
                "that's it",
                "no thanks",
                "all good",
                "i'm fine",
                "i'm good",
                "thank*"
              ],
              "reply": "@okay"
            }
          ],
          "tests": {
            "on": [
              "am I entitled to any compensation for the delay => comp",
              "can I get my money back => comp",
              "no that's all => none"
            ],
            "partly": [
              "the twelve fifteen train",
              "which platform"
            ],
            "off": [
              "I need to buy a present for my mum"
            ]
          }
        },
        {
          "id": "claim",
          "task": "Check how to claim",
          "ahead": false,
          "say": "You claim online. Do you know how?",
          "hint": "Ask what you need, or where.",
          "model": "Not really. What do I need to send, and where?",
          "options": [
            {
              "id": "how",
              "any": [
                "how",
                "where",
                "website",
                "online",
                "app",
                "form",
                "what do i need",
                "link",
                "send",
                "proof",
                "photo",
                "deadline",
                "how long",
                "write it down",
                "don't know",
                "not sure",
                "no idea",
                "not really",
                "no"
              ],
              "reply": "Upload a photo of your ticket on our website."
            },
            {
              "id": "know",
              "any": [
                "i know",
                "i've done it",
                "done it before",
                "i'll find",
                "i'll check",
                "no need",
                "i'll google",
                "yes"
              ],
              "reply": "@great"
            }
          ],
          "tests": {
            "on": [
              "not really what do I need to send and where => how",
              "no => how",
              "yes I've done it before => know",
              "is there a deadline => how"
            ],
            "partly": [
              "the twelve fifteen train"
            ],
            "off": [
              "my brother is learning Spanish"
            ]
          }
        }
      ],
      "close": "Here's your new ticket. Sorry again.",
      "watch": [
        {
          "re": "\\blost (my|the|our) (train|connection|connecting train)\\b",
          "better": "missed $1 $2",
          "note": "You miss a train. You lose things.",
          "tests": {
            "yes": [
              "I lost my connection"
            ],
            "no": [
              "I missed my connection",
              "I lost my ticket"
            ]
          }
        },
        {
          "re": "\\b(take|took|taking) (my|our|the) money back\\b",
          "better": "get $2 money back",
          "note": "We “get” our money back.",
          "tests": {
            "yes": [
              "can I take my money back"
            ],
            "no": [
              "can I get my money back"
            ]
          }
        },
        {
          "re": "\\ba compensation\\b",
          "better": "compensation",
          "note": "“Compensation” takes no “a”.",
          "tests": {
            "yes": [
              "can I get a compensation"
            ],
            "no": [
              "can I get compensation",
              "am I entitled to any compensation"
            ]
          }
        }
      ]
    }
  }
}
