Skip to content

free-no-costly-yes

Asking the world "can I?" is free; actually trying costs daylight; and when the model garbles its answer, the player never pays for the model's mistake.

The accounting

An adjudicated attempt in hunker ends one of three ways, each with its own price (hunker/manifest.py, _try_anything):

  1. A roll happened (at least one legal delta survived validation) — 1 action point, success or failure alike. The attempt is the purchase; the roll is the gamble.
  2. A flat no (the model refused with empty deltas, or everything bounced) — free. Probing what's possible is part of the fun under test; taxing curiosity would teach the player to stop improvising, which kills the prototype's reason to exist.
  3. Malformed model output (schema retry exhausted) — free, with an in-fiction line ("The thought slips away half-formed"). The model's fault is never the player's bill.

Why it matters beyond hunker

This is a fairness ledger for any LLM-mediated game: the player must be able to trust that costs track their choices, not the model's competence. The moment a garbled JSON response burns a scarce resource, the player correctly perceives the game as arbitrary — the exact "it judged me unfairly" failure the fun-test exists to catch.

Parked decision (maintainer's call, flagged in the try-anything PR): whether a flat no should ever cost AP — an argument exists that consequence-free probing lets the player brute-force the adjudicator's boundaries. Held at free until a playtest shows abuse.