PUMPKO v1.6.0 — DAILY RESERVATIONS
===================================
At the START of a daily run, the game atomically creates a per-caller,
per-day directory: data/profile-<hash>-<daystamp>.running.
Two simultaneous sessions with the same caller identity and shared data
cannot both create this directory. A completed daily is recorded in
`data/daily-lock.tsv` and the reservation is released.

If the player chooses to quit, the reservation is released. If a process
crashes or the BBS disconnects unexpectedly, the reservation remains and
fails closed: it prevents a second run, rather than allowing duplicates.
A sysop may remove a stale .running directory AFTER checking that the
corresponding caller session is no longer active. Never remove live locks.

IMPORTANT: all nodes sharing the same BBS accounts must use the SAME data/
directory on a filesystem with atomic directory creation semantics.
Different game installations with separate data/ folders cannot enforce
a global one-play limit. BBS identity is from OpenDoors od_get_user_id().
No PUMPKO_CALLER_ID setting is needed.
