# Roads & Highways — data files

These JSON files feed the pages in `/roads/`. Edit a file, upload it, and the page updates on the next load. No build step.

| File | Feeds | What's in it |
|---|---|---|
| `routes.json` | "State-maintained routes" table + the street lookup | Every state highway system route inside the Crockett city limits (from the Dec. 2023 Municipal Maintenance Agreement, Exhibit A) with its in-town streets |
| `projects.json` | "TxDOT projects" table | Current, recent and programmed TxDOT work touching Crockett (from TxDOT Project Tracker) |
| `contacts.json` | "Who to call" cards | TxDOT and City contacts, and which one handles what |
| `documents.json` | "Documents & sources" list | Primary sources with links |
| `potholes.json` | "Potholes & road conditions" section | Citizen / staff reports of potholes and pavement problems — empty until you add some |

Every file carries `schema_version` and `updated` (YYYY-MM-DD). Bump `updated` whenever you change data.

## potholes.json — one item per report

```json
{
  "id": "PH-2026-001",
  "reported": "2026-09-22",
  "street": "E. Goliad Ave",
  "cross_street": "S. 7th St",
  "lat": 31.3175,
  "lon": -95.4550,
  "route": "BS 7",
  "jurisdiction": "TxDOT",
  "status": "reported",
  "severity": "moderate",
  "source": "citizen",
  "photo": "",
  "notes": "Right lane, eastbound, about 2 ft wide.",
  "last_update": "2026-09-22"
}
```

- `route`: the state route number if the street is on the state list (`BU 287`, `BS 7`, `BS 19`, `BS 21`, `Loop 304`, `FM 229`, `FM 2022`, `FM 2110`, …) or `""` for a City street.
- `jurisdiction`: `TxDOT` for a state route, `City` for a City street, `County` for a county road outside the city limits. The Roads page shows the right phone number based on this field.
- `status`: `reported` → `acknowledged` → `scheduled` → `fixed` (or `closed`).
- `severity`: `minor`, `moderate`, `severe`.
- `source`: `citizen`, `staff`, `txdot`, `city`, `press`.
- `lat` / `lon`: optional; leave `null` if unknown. Future map layers will use them.
- `photo`: optional relative path (e.g. `photos/PH-2026-001.jpg`) or full URL.

## routes.json — adding or correcting a street

The street lookup on the Roads page matches what the reader types against each route's `streets` list (case-insensitive, partial match). If a street segment is missing, add it to the right route's `streets` array. Keep the parenthetical notes such as `(square)` — they are shown to the reader.

## projects.json — one item per project

`csj` is TxDOT's project number (Control-Section-Job). `cost_usd` is a number (no commas) or `null`. Dates are `YYYY-MM` or `YYYY-MM-DD`. `in_city` is `true` for work inside or on Loop 304, `false` for county work listed for context.

## Where the numbers come from

- TxDOT Project Tracker: https://apps3.txdot.gov/apps-cq/project_tracker/ (search Houston County)
- TxDOT Lufkin District contacts: https://www.txdot.gov/about/districts/lufkin-district/lufkin-district-contact.html
- Municipal Maintenance Agreement (City packet, Dec. 4, 2023): https://mccmeetings.blob.core.usgovcloudapi.net/crocketttx-pubu/MEET-Packet-0a857e909ffc42e29dc671d6a04ccd91.pdf
- Minute Order 117052 (Sept. 25, 2025): https://www.txdot.gov/content/dam/docs/commission/2025/0925/13e.pdf
