Work Capacity (WC)
Work Capacity (WC) is a citizen’s personal energy budget for doing things in Harimu. Starting a work shift or committing to some civic tasks costs WC. WC recovers over time while you’re away, and eating a household meal restores some of it right away. It’s capped, so you can’t stockpile labor. You have to come back, eat, rest and choose what to spend it on.
This page describes what the current prototype code does (repo thachp/harimu, commit 1d48b3f). All numbers are prototype tuning, not final balance. Where the code and the design pages disagree, see Gaps vs. the design docs.
Key numbers
| Item | Value | Source |
|---|---|---|
| Maximum WC | 24 | lib/economy.ts (maximumCapacity) |
| Starting WC for a new citizen | 18 | db/schema.ts, lib/db.ts (column default) |
| Recovery | Full refill to 24 once per recovery interval | lib/economy.ts (recoverCapacitySql) |
| Recovery interval | 86,400 s (1 real day) by default. Set by the env var HARIMU_CAPACITY_RECOVERY_SECONDS and clamped to 60 s–7 days | lib/economy-rules.ts |
| Household meal | −2 food → +4 WC (never above 24). Only allowed when WC is below 24 | lib/market.ts, lib/korund.ts |
| Meal cooldown | Kindle: one meal per recovery interval (default 24 h). Korund: one meal per 2 h | lib/market.ts, lib/korund.ts |
Spending WC
Work shifts (work board)
Each open work order has a capacity_cost. Starting a shift checks that you’re a citizen of a nation, that you have enough WC, and that you have no other active shift. Then it debits the cost right away. The shift resolves on a real-time timer, and you collect wages and goods once afterward (lib/work-shifts.ts, app/api/citizen/route.ts).
| Work order | Nation | WC cost | Duration | Reward |
|---|---|---|---|---|
| Support the savanna harvest | Kindle | 4 | 2 h | 8.00 Spark + 4 food |
| Move a foundry convoy | Kindle | 6 | 4 h | 12.00 Spark + 2 materials |
| Catalogue the civic archive | Kindle | 3 | 3 h | 6.00 Spark + 1 knowledge |
| State food-production brigade (assigned) | Korund | 4 | 2 h | 8 LN wage + 4 state food |
Reward terms are snapshotted when a shift starts, so later tuning can’t change a shift you already agreed to. Kindle wages come out of a limited employer budget (kindle-employer, 1,000.00 Spark). When a shift is settled, the WC it used is logged in work_contributions as the citizen’s contribution to that work order.
In Korund you don’t choose: the state assigns the brigade job (lib/korund.ts). The UI shows your WC next to your ration book.
Civic planning tasks (daily briefing)
Daily planning decisions carry a capacity_delta. The server rejects a decision that would take WC below zero (“Not enough Work Capacity for this decision.”).
| Task | WC | Other effects (influence / water / stability) |
|---|---|---|
| Commit Work Capacity: reserve 6 WC for the Forgehaven East harvest crews | −6 | +20 / +4 / +1 |
| Attend the district forum | −2 | +80 / +3 / +3 |
| Review the trade ballot | 0 | +50 / +1 / +2 |
So WC is also the cost of civic participation, not only of paid work.
Recovering WC
- Time: each time you load your citizen profile, the server counts how many full recovery intervals have passed since your clock last advanced. It adds 24 WC per interval (capped at 24) and then moves the clock forward. With default settings, that means back to full every real day. The briefing shows “Rest and recover capacity” when you’re at 0.
- Meals: the household panel can turn 2 food into +4 WC. Kindle citizens use their own household food. Korund citizens use food from their weekly ration coupons. The daily briefing suggests a meal when WC is below 24, the timer is ready, and you have at least 2 food.
Where it appears in the game
- HUD lightning-bolt counter:
app/game-shell.tsx - Daily briefing and priority logic:
app/daily-briefing.tsx,lib/daily-briefing.ts - City square snapshot:
app/city-square-scene.tsx - Korund plan panel:
app/korund-plan-panel.tsx - Server rules:
app/api/citizen/route.ts,lib/work-shifts.ts,lib/economy.ts,lib/market.ts,lib/korund.ts
Gaps vs. the design docs
- Before v0.13, the design docs never named Work Capacity. Daily Loops describes shifts (2–8 h) and needs, but not a stamina-style budget. This page fills that gap.
- The design says a minigame sets shift quality. The prototype has no quality step: every shift pays its fixed snapshotted reward.
- The prototype only implements Kindle and Korund work; the other eight nations have no WC sinks yet.
- The Kindle meal cooldown reuses the recovery interval (default 24 h), but Korund’s is 2 h. That may be unintended. The Korund error message mentions a “two-hour meal timer”.
- Human vs. AI citizens: the code doesn’t treat AI citizens differently on WC. External AI Citizens says fees can never buy extra earning capacity, which matches a fixed cap of 24.
Related: Daily Loops · Household & Family · Economy & Currency · Korund
See also: Immigration & Asylum.