{
  "reply.marketData": {
    "type": "text",
    "value": "I don't have a market data feed, so I can't look up live prices, index levels, exchange rates or news — and I'd rather tell you that than guess. What I can do is show you what your own holdings are worth from the latest snapshot: for example your total value, your biggest positions, or a split by bank.",
    "vars": [],
    "description": "Fixed answer to a question that needs live market data. The model is not called."
  },
  "reply.clarify": {
    "type": "text",
    "value": "I want to get this right — could you tell me a bit more about what you would like to see? For example your total value, your biggest positions, or a breakdown by bank.",
    "vars": [],
    "description": "Fixed answer to a question too vague to act on (when the classifier gave no question of its own)."
  },
  "reply.snapshotUnavailable": {
    "type": "text",
    "value": "I can't reach the latest portfolio snapshot at the moment, so I'm not able to give you a reliable figure — and I won't estimate one. This is a temporary data connection issue on our side; please try again shortly.",
    "vars": [],
    "description": "Answer to a total-value question when the portfolio snapshot cannot be read."
  },
  "reply.summary": {
    "type": "text",
    "value": "Your total assets under management are **{{formatted}} {{code}}** as of {{asOf}}.",
    "vars": [
      "formatted",
      "code",
      "asOf"
    ],
    "description": "Headline answer, written from the snapshot figures."
  },
  "reply.summaryAllocation": {
    "type": "text",
    "value": "\n\nBy asset class:\n\n{{rows}}",
    "vars": [
      "rows"
    ],
    "description": "Appended to the headline answer when the snapshot has an asset class split. {{rows}} is the list below."
  },
  "reply.summaryRow": {
    "type": "text",
    "value": "- {{assetClass}}: {{formatted}} {{code}} ({{pct}}%)",
    "vars": [
      "assetClass",
      "formatted",
      "code",
      "pct"
    ],
    "description": "One line of the asset class split."
  },
  "reply.unknownBank": {
    "type": "text",
    "value": "I couldn't find a bank called \"{{name}}\" in your portfolio. The banks I can see are:\n\n{{banks}}{{more}}\n\nWhich one did you mean?",
    "vars": [
      "name",
      "banks",
      "more"
    ],
    "description": "Asked when the person names a bank that does not exist. {{banks}} is the list of known banks; {{more}} is empty or the 'and N more' line."
  },
  "reply.unknownBankMore": {
    "type": "text",
    "value": "\n- …and {{count}} more",
    "vars": [
      "count"
    ],
    "description": "Added after the bank list when there are more banks than are listed."
  },
  "label.marketData": {
    "type": "text",
    "value": "Market data is not available",
    "vars": [],
    "description": "Shown above the reply ('Understood as: ...')."
  },
  "label.clarify": {
    "type": "text",
    "value": "Needs a little more detail",
    "vars": [],
    "description": "Shown above the reply."
  },
  "label.total": {
    "type": "text",
    "value": "Total portfolio value",
    "vars": [],
    "description": "Shown above the reply."
  },
  "label.overview": {
    "type": "text",
    "value": "Portfolio overview",
    "vars": [],
    "description": "Shown above the reply."
  },
  "label.chart": {
    "type": "text",
    "value": "Portfolio chart",
    "vars": [],
    "description": "Shown above the reply."
  },
  "label.advice": {
    "type": "text",
    "value": "Advice",
    "vars": [],
    "description": "Shown above the reply."
  },
  "label.unknownBank": {
    "type": "text",
    "value": "Which bank is \"{{name}}\"?",
    "vars": [
      "name"
    ],
    "description": "Shown above the reply when the bank is unknown."
  },
  "label.rankTop": {
    "type": "text",
    "value": "Top",
    "vars": [],
    "description": "Start of the ranking label, largest first."
  },
  "label.rankBottom": {
    "type": "text",
    "value": "Bottom",
    "vars": [],
    "description": "Start of the ranking label, smallest first."
  },
  "label.ranking": {
    "type": "text",
    "value": "{{direction}} {{limit}} positions by {{metric}}{{scope}}",
    "vars": [
      "direction",
      "limit",
      "metric",
      "scope"
    ],
    "description": "Shown above a ranking. {{scope}} is e.g. ' · UBS · Bonds' or empty."
  },
  "label.metrics": {
    "type": "stringMap",
    "value": {
      "value": "market value",
      "pnl": "unrealised P&L",
      "cost": "cost"
    },
    "description": "Names of the measures a ranking can use."
  },
  "label.filter": {
    "type": "text",
    "value": "Positions{{scope}}",
    "vars": [
      "scope"
    ],
    "description": "Shown above a list of positions."
  },
  "label.byBank": {
    "type": "text",
    "value": "Value by bank{{scope}}",
    "vars": [
      "scope"
    ],
    "description": "Shown above a split by bank."
  },
  "label.byAssetClass": {
    "type": "text",
    "value": "Value by asset class{{scope}}",
    "vars": [
      "scope"
    ],
    "description": "Shown above a split by asset class."
  },
  "reply.askCustomer": {
    "type": "text",
    "value": "Which customer would you like to look at? Tell me their name, or their customer number (for example \"customer 1234\"), and I'll show their portfolio.",
    "vars": [],
    "description": "Asked when no customer has been chosen yet. Nothing about a portfolio can be answered until one is."
  },
  "reply.customersUnavailable": {
    "type": "text",
    "value": "I can't reach the customer list at the moment, so I can't tell which portfolio you mean. This is a temporary data connection issue on our side; please try again shortly.",
    "vars": [],
    "description": "Said when the list of customers cannot be read."
  },
  "reply.customerSelected": {
    "type": "text",
    "value": "Got it. I'm now looking at **{{customer}}**.",
    "vars": [
      "customer"
    ],
    "description": "First line of the answer when a customer has just been chosen. {{customer}} is their name and number (just \"Customer 668\" when they have no name on record). The headline figures follow it."
  },
  "reply.customerAmbiguous": {
    "type": "text",
    "value": "More than one customer fits \"{{name}}\":\n\n{{customers}}\n\nWhich one did you mean? You can also give their customer number, for example \"customer {{exampleId}}\".",
    "vars": [
      "name",
      "customers",
      "exampleId"
    ],
    "description": "Asked when the name fits several customers. {{customers}} is the list."
  },
  "reply.customerUnknownId": {
    "type": "text",
    "value": "I couldn't find a customer with number {{id}}. Tell me their name, or check the number and try again.",
    "vars": [
      "id"
    ],
    "description": "Said when the customer number does not exist."
  },
  "label.askCustomer": {
    "type": "text",
    "value": "Which customer?",
    "vars": [],
    "description": "Shown above the reply asking for a customer."
  },
  "label.customerSelected": {
    "type": "text",
    "value": "Customer: {{name}}",
    "vars": [
      "name"
    ],
    "description": "Shown above the reply when a customer has just been chosen."
  },
  "label.customerAmbiguous": {
    "type": "text",
    "value": "Which customer is \"{{name}}\"?",
    "vars": [
      "name"
    ],
    "description": "Shown above the reply when a name fits several customers."
  },
  "label.customerUnknown": {
    "type": "text",
    "value": "Customer not found",
    "vars": [],
    "description": "Shown above the reply when the customer number does not exist."
  }
}
