import type { HeatStrike, NightState } from '../data/types'; /** CONTRACTS.md §3: heatStrikes is "run-scoped, max 3". Design §2: 3 = licence gone. */ export const MAX_HEAT_STRIKES = 3; /** * Whether a strike is worth recording. Two guards, both contract-driven: * past three the run is already over, and a breach that persists (over capacity * for an hour) is ONE offence the inspector writes up, not one per patron. */ export function shouldRecordStrike(state: NightState, strike: HeatStrike): boolean { if (state.heatStrikes.length >= MAX_HEAT_STRIKES) return false; return !state.heatStrikes.some((s) => s.reason === strike.reason); }