Professions
Every job in the town, who does it, and how it ties into the tick pipeline.
A profession is a deterministic schedule + a behavioral archetype, not a class.
Profession Table (v1)
| Profession | Count | Example NPC | Primary Location | Schedule |
|---|---|---|---|---|
| Baker | 1 | Anna Schmidt | Bakery | 06:00–14:00 |
| Publican | 1 | Sam O'Brien | Pub | 14:00–01:00 |
| Café owner | 1 | Lila Wong | Café | 07:00–18:00 |
| General store owner | 1 | Henry Lawson | General Store | 08:00–19:00 |
| Greengrocer | 1 | Maria Esposito | Market | 07:00–14:00 |
| Florist | 1 | Yuki Tanaka | Market | 07:00–14:00 |
| Fishmonger | 1 | Old Jack | Market | 07:00–14:00 |
| Pharmacist | 1 | Sarah Kim | Pharmacy | 09:00–18:00 |
| Chief doctor | 1 | Michael Chen | Hospital | 09:00–17:00 |
| Surgeon | 1 | Aisha Patel | Hospital | 09:00–17:00 |
| Nurse | 2 | Daniel Park, Carla Reyes | Hospital | Shift-based |
| Hospital orderly | 1 | Tom Whitfield | Hospital | 22:00–06:00 |
| Police officer | 2 | Ben Foster, Priya Singh | Police Station | Shift-based |
| Police sergeant | 1 | Joe Williams | Police Station | 09:00–17:00 |
| Mayor | 1 | Patricia Holloway | Town Hall | 09:00–17:00 |
| Clerk | 1 | Robert Ng | Town Hall | 09:00–17:00 |
| Priest | 1 | Father Marcus | Church | 08:00–18:00 |
| Teacher | 1 | James Carter | School | 08:00–15:00 |
| School principal | 1 | Helen Walker | School | 08:00–17:00 |
| Conductor | 1 | Frank Miller | Train Station | 06:00–18:00 |
| Retired (varied) | 6 | Eleanor, Margaret, etc. | Home / Town | Loose |
| Children (students) | 5 | Tommy, Sophie, etc. | School | 08:00–15:00 |
Total: 30 NPCs.
How Professions Drive Behavior
A profession is more than "where you work". It defines:
1. Default Schedule
Each profession has a work window. Outside this window, the NPC is free to make autonomous decisions (within their personality).
2. Need Priorities
Different professions care about different things:
- 🍞 Baker → cares about flour stock, weather (rain hurts foot traffic)
- 👮 Police officer → cares about town safety, crime events
- 🍻 Publican → cares about evening footfall, beer stock
- 👨⚕️ Doctor → cares about patient health, hospital capacity
3. Conversation Topics
NPCs talk about what they know. A doctor mentions patients. A baker mentions bread. A publican mentions last night's rowdy crowd.
4. Social Network
Certain professions cluster:
- Hospital staff hang out with each other (off-shift)
- Market traders argue over stall placement
- Night-shift workers form their own social circle
5. Diary Voice
The LLM is prompted with the NPC's profession as part of context. This subtly influences diary tone — a baker writes about flour, a doctor writes about patients.
Shift Work
Two locations have shifts:
Hospital
- Day shift: 09:00–17:00 — Michael, Aisha, Sarah (part)
- Evening shift: 17:00–22:00 — Daniel, Carla
- Night shift: 22:00–06:00 — Tom, one nurse on rotation
Police Station
- Day shift: 09:00–17:00 — Joe + one officer
- Evening shift: 17:00–01:00 — one officer
- Night shift: 01:00–09:00 — one officer
Shift rotation is deterministic per week so NPCs have stable routines.
Children & Non-Workers
- Children (ages 8–16): Mandatory school attendance 08:00–15:00. Outside that, free time.
- Retirees: No fixed schedule. Spend days at home, walking, at the pub, etc. They are emergent-story powerhouses because their time is unstructured.
Multi-Job NPCs
One NPC — Sarah Kim — works both at the pharmacy and at the hospital. Her schedule splits her day:
- 09:00–13:00 — Pharmacy
- 14:00–18:00 — Hospital
This kind of multi-location work is rare in v1 but supported by the data model.
Profession Data Model
interface Profession {
id: string;
name: string;
defaultLocationId: string;
workWindows: TimeWindow[]; // when they're "supposed" to be at work
needPriorities: Record<NeedType, number>; // 0-1 weight
conversationTopics: string[];
socialAffinity: Record<ProfessionId, number>; // -1 to 1
diaryToneHints: string[];
}See the runtime NPC database for full definitions.