{
  "name": "Chapter City",
  "kind": "browser city-building game with procedural fiction",
  "canonical": "https://pointcast.xyz/chapter-city/",
  "description": "A SimCity-style city-builder in which each simulated year is written up as a chapter of a novel about the town. Story text is generated in the browser from templates and the simulation state; no AI model, accounts or network calls are used during play.",
  "map": {
    "width": 24,
    "height": 16,
    "terrain": [
      "sea",
      "beach",
      "grass",
      "trees",
      "creek"
    ]
  },
  "tools": {
    "road": {
      "label": "Road",
      "cost": 10,
      "monthlyUpkeep": 0.4
    },
    "res": {
      "label": "Homes",
      "cost": 20,
      "monthlyUpkeep": 0
    },
    "com": {
      "label": "Shops",
      "cost": 25,
      "monthlyUpkeep": 0
    },
    "ind": {
      "label": "Industry",
      "cost": 25,
      "monthlyUpkeep": 0
    },
    "park": {
      "label": "Park",
      "cost": 45,
      "monthlyUpkeep": 1
    },
    "power": {
      "label": "Power plant",
      "cost": 600,
      "monthlyUpkeep": 22
    },
    "water": {
      "label": "Water tower",
      "cost": 280,
      "monthlyUpkeep": 10
    },
    "school": {
      "label": "School",
      "cost": 400,
      "monthlyUpkeep": 16
    },
    "clinic": {
      "label": "Clinic",
      "cost": 420,
      "monthlyUpkeep": 18
    },
    "fire": {
      "label": "Fire station",
      "cost": 320,
      "monthlyUpkeep": 12
    },
    "police": {
      "label": "Watch house",
      "cost": 320,
      "monthlyUpkeep": 12
    },
    "doze": {
      "label": "Bulldoze",
      "cost": 5,
      "monthlyUpkeep": 0
    },
    "lighthouse": {
      "label": "Lighthouse",
      "cost": 900,
      "monthlyUpkeep": 6
    },
    "pier": {
      "label": "Ferry pier",
      "cost": 1400,
      "monthlyUpkeep": 10
    },
    "college": {
      "label": "College",
      "cost": 2500,
      "monthlyUpkeep": 28
    },
    "stadium": {
      "label": "Stadium",
      "cost": 3000,
      "monthlyUpkeep": 24
    }
  },
  "landmarks": {
    "lighthouse": {
      "label": "Lighthouse",
      "cost": 900,
      "unlocksAtPopulation": 300,
      "coastal": true
    },
    "pier": {
      "label": "Ferry pier",
      "cost": 1400,
      "unlocksAtPopulation": 800,
      "coastal": true
    },
    "college": {
      "label": "College",
      "cost": 2500,
      "unlocksAtPopulation": 1300,
      "coastal": false
    },
    "stadium": {
      "label": "Stadium",
      "cost": 3000,
      "unlocksAtPopulation": 2000,
      "coastal": false
    }
  },
  "rules": [
    "Zones (homes, shops, industry) grow only within two tiles of a road and with power; above the first level they also need water.",
    "Demand for homes follows jobs; demand for shops and industry follows population. Taxes above 7% lower all demand.",
    "Schools, clinics, fire stations and watch houses cover about six tiles. Unprotected built-up lots can burn.",
    "Industry and power plants pollute within three tiles; parks and trees reduce it. Land near the sea is worth more.",
    "Each turn simulates twelve months, names districts, and writes one chapter with a newspaper headline.",
    "Landmarks (lighthouse, ferry pier, college, stadium) unlock at population milestones; each can be built once, and the lighthouse and pier must touch the sea.",
    "Elections every four years: below 40% approval ends the book. A treasury below -1,500 at year end also ends it."
  ],
  "story": {
    "engine": "Seeded templates over simulation events; chapters are deterministic for a given town and year",
    "cast": {
      "odile": {
        "name": "Odile Marsh",
        "role": "the town clerk"
      },
      "tomas": {
        "name": "Tomas Ferreira",
        "role": "the baker"
      },
      "juniper": {
        "name": "Juniper Bell",
        "role": "a girl with opinions"
      },
      "wexley": {
        "name": "Augustin Wexley",
        "role": "a developer"
      },
      "mei": {
        "name": "Mei Okafor",
        "role": "editor of the Ledger"
      }
    },
    "recurring": [
      "Wendell, a sea serpent",
      "Ines the falconer",
      "the town Ledger"
    ],
    "dilemmas": {
      "casino": {
        "title": "Wexley’s pier",
        "options": [
          "Build the pier",
          "Turn him down"
        ]
      },
      "library": {
        "title": "Juniper’s petition",
        "options": [
          "Fund the library",
          "Not this year"
        ]
      },
      "exemption": {
        "title": "The smokestack letter",
        "options": [
          "Grant the exemption",
          "Keep the rules"
        ]
      },
      "film": {
        "title": "Lights, camera",
        "options": [
          "Roll cameras",
          "Keep the town quiet"
        ]
      },
      "bread": {
        "title": "Tomas and the loaf",
        "options": [
          "Sponsor the loaf",
          "Too much bread"
        ]
      },
      "rail": {
        "title": "The rail link",
        "options": [
          "Build the station",
          "Stay a road town"
        ]
      },
      "serpentMuseum": {
        "title": "What to do about Wendell",
        "options": [
          "Open a serpent museum",
          "Ask it to leave"
        ]
      },
      "loan": {
        "title": "The bank’s offer",
        "options": [
          "Take the loan",
          "Tighten belts"
        ]
      },
      "union": {
        "title": "The city staff",
        "options": [
          "Give the raise",
          "Hold the line"
        ]
      },
      "capsule": {
        "title": "The time capsule",
        "options": [
          "Bury it",
          "Maybe next year"
        ]
      },
      "gulls": {
        "title": "The gull situation",
        "options": [
          "Hire the falconer",
          "Coexist"
        ]
      }
    },
    "plates": "Each chapter carries a woodcut-style plate drawn from a snapshot of the map at that year end.",
    "readAloud": "Chapters can be read aloud with the browser speech synthesis voice, when available.",
    "card": "Any chapter can be saved or shared as a 1200x630 PNG card: masthead, headline, title and plate, drawn in the browser.",
    "export": "The whole novel downloads as Markdown."
  },
  "fiction": "The town, characters, newspaper and serpent are fictional.",
  "boundaries": {
    "storage": "browser localStorage only",
    "accounts": false,
    "network": "fonts only",
    "ai": false,
    "payments": false
  },
  "methods": [
    "GET"
  ],
  "sideEffects": "none"
}