{
  "id": "millhaven_constable",
  "root": "intro",
  "nodes": [
    {
      "id": "intro",
      "speaker": "npc",
      "text": "\"Constable Aldous Fenn. Magistrate told me to expect you.\"\n\nThe coyote-folk constable has the worn calm of someone who has already had two long days this week. His Covenant brassard is impeccable; his cuffs are not. \"I'm sorry for your loss. Anything you need from the office, you ask me first.\"",
      "options": [
        { "text": "Show me your file on my parents.", "next": "case_file" },
        { "text": "What's the Old Howl mine?", "next": "old_howl" },
        { "text": "I heard there's some kind of dispute on the south fence.", "next": "fence_dispute" },
        { "text": "I'll come back later.", "next": "<end>" }
      ]
    },
    {
      "id": "case_file",
      "speaker": "npc",
      "text": "He pulls a thin folder. \"Open-field rawfang attack. No witnesses, no print pattern, no one missing from the local population. I closed it as such. Magistrate disagreed. He didn't tell me what he disagreed with.\"\n\nA pause. \"If you find something my eyes missed, I want to know. I'd rather rewrite a closed case than work the wrong one.\"",
      "options": [
        { "text": "I will. Thank you.", "next": "intro" },
        { "text": "Why didn't the magistrate tell you?", "next": "magistrate_split" }
      ]
    },
    {
      "id": "magistrate_split",
      "speaker": "npc",
      "text": "He almost smiles. \"Because the magistrate is older than me, and he learned policing in a generation that didn't trust paperwork. He's careful with what he writes down. I am too, when I have to be.\"",
      "options": [
        { "text": "Understood.", "next": "intro" }
      ]
    },
    {
      "id": "old_howl",
      "speaker": "npc",
      "text": "\"Collapsed mine, due south. Used to ship copper. The shaft fell in fifty years ago. Officially closed. Unofficially, somebody's been camping in the entrance — campfire ash and a path beaten in the brush. Brigands, I expect. Take care if you go.\"",
      "options": [
        { "text": "Brigands? On their own, this close to town?", "next": "brigand_concern" },
        { "text": "Good to know.", "next": "intro" }
      ]
    },
    {
      "id": "brigand_concern",
      "speaker": "npc",
      "text": "\"On their own, no. Some of them work to a contract. I would like to know who pays for camp ash this close to town. If you find out and choose to tell me, the office will remember.\"",
      "options": [
        { "text": "I'll look.", "next": "intro" }
      ]
    },
    {
      "id": "fence_dispute",
      "speaker": "npc",
      "text": "\"Cervid farmer named Mira and a Canid rancher named Voss. Same fence line for thirty years. This summer it became a war. Both sides are right about something. Neither will speak to me without the other in the room. I am very tired of fences.\"\n\n\"If you can mediate, I will accept any honest outcome.\"",
      "options": [
        {
          "text": "I'll go talk to them.",
          "next": "fence_accept",
          "effects": [
            { "kind": "start_quest", "quest": "side_act_i_fence_lines" }
          ]
        },
        { "text": "Not my problem.", "next": "intro" }
      ]
    },
    {
      "id": "fence_accept",
      "speaker": "npc",
      "text": "\"Mira's farm is the second left out the south gate. Voss runs his herd along the eastern ridge. Pick a side, pick a compromise — I'll back any solution that holds for a season.\"",
      "options": [
        { "text": "Understood.", "next": "<end>" }
      ]
    }
  ]
}
