Minutes are not time
Why pricing a rule off $.event.minutes can make a wordy turn seven times costlier.
onTimePasses fires in every game, including ones with no clock.
In a game with no clock, $.event.minutes is the narrator's guess at how long the turn
took. In live sessions, similar turns have ranged from 3 to 22 minutes. Charge an hourly rate
against that and a wordy turn costs seven times what a terse one does. Nothing errors. The game
just feels random, and no playtest report will tell you the cause is prose length.
That's why stamina and mana don't run on the clock.
Fix 1: charge in the unit the game has
$.adjustField({ field: 'satiety', by: -($.timed
? ($.event.minutes / 60) * $.dial('foodDrainPerHour')
: $.dial('foodDrainPerTurn')) })
Two dials, an hourly one and a per-turn one, because they really are different numbers and the author needs to tune both.
Fix 2: use onTurnEnd
For anything that ticks once per character per turn (regeneration, cooldowns, per-turn drains),
use onTurnEnd. It fires once per actor per turn in every game and carries no estimate.
Don't put the same rule on both triggers. That charges twice.