# ─────────────────────────────────────────────────────────────────────────────
# arms_tfil_turn.txt — j145: the TFIL TURN-COST TIEBREAK, four arms on the
# frozen movement panel (tools/ab/panel_movement.txt), all with TR_MOVEMENT=tfil
# pinned EXPLICITLY.
#
# WHAT THE KNOB IS. Among the tiles that already passed the HARD heat filter
# (pathMaxHeat <= PathDangerThreshold), the draw is weighted by
#
#     w = max(1, round(1 + TR_TFIL_TURN_BIAS * (1 - max(0,|turn| - REF) / 180)))
#
# so a straight-ahead safe tile is drawn `1 + bias` times as often as a 180 deg
# one. The heat score is NOT touched: a tile over the threshold still loses, at
# any bias (guard: test_tfil_commit_env.nim, "j145: with an absurd turn bias...").
# The draw stays RANDOM (job j51, 3142b70: a deterministic argmin measured worse).
#
# Pre-registered in docs/movement_campaign.md ("TFIL turn-cost tiebreak") BEFORE
# any of these battles ran. Reference is `tfil_shipped`.
#
# Format: name | ENV=value ENV=value | label
# ─────────────────────────────────────────────────────────────────────────────

# 1. THE ARM TO BEAT — the shipped tfil defaults, explicitly selected.
tfil_shipped | TR_MOVEMENT=tfil | shipped tfil defaults (control / reference)

# 2. the two knobs job j144 recommends, unchanged.
arrive_norev | TR_MOVEMENT=tfil TR_TFIL_COMMIT_ARRIVAL=1 TR_TFIL_NOREV_SPEED=4 | j144's recommended .env

# 3. j144's knobs PLUS the turn tiebreak, at the value the offline ruler picked
#    (the knee of the bias curve: bias 9 ref 0 cuts mean |turn| 11% and opposite
#    picks 22% with no path-heat cost; bias 39 buys almost nothing more).
arrive_norev_turn | TR_MOVEMENT=tfil TR_TFIL_COMMIT_ARRIVAL=1 TR_TFIL_NOREV_SPEED=4 TR_TFIL_TURN_BIAS=9 TR_TFIL_TURN_REF_DEG=0 | j144 + the turn tiebreak

# 4. THE TURN FIX ALONE — isolates the tiebreak with no j144 knob set, which is
#    the only arm that can say whether it is worth anything by itself.
turn_only | TR_MOVEMENT=tfil TR_TFIL_TURN_BIAS=9 TR_TFIL_TURN_REF_DEG=0 | the turn tiebreak alone
