# ─────────────────────────────────────────────────────────────────────────────
# arms_tfil_commit.txt — j144: the TFIL COMMITMENT fix, four arms on the frozen
# movement panel (tools/ab/panel_movement.txt), all with TR_MOVEMENT=tfil pinned
# EXPLICITLY.
#
# Owner's report (live GUI, TR_MOVEMENT=tfil): "when the tile to go is selected
# in just a few ticks, the bot is still accelerating and the target changes even
# if the path is still good, and choose a tile that is opposite way, in the
# meantime bullet arrived and hit the bot."
#
# Pre-registered in docs/movement_campaign.md ("TFIL commitment: arrival-based +
# reversal hysteresis") BEFORE any of these battles ran. Reference is `tfil`.
#
# The three knobs are cumulative so the arms isolate one ingredient each:
#   ARRIVAL — hold the committed tile until the bot is ON it (a boundary
#             crossing stops cancelling the commitment; the tick knob becomes a
#             MINIMUM dwell)
#   MARGIN  — only leave the committed tile if the best alternative is at least
#             this much cooler, on the same pathMaxHeat scale the picker uses
#             (10.0 = one PathDangerThreshold level)
#   NOREV   — while |speed| < 4.0 (half of MaxSpeed 8) a mid-flight switch may
#             not take a tile more than 90 deg off the travel direction
#
# Format: name | ENV=value ENV=value | label
# ─────────────────────────────────────────────────────────────────────────────

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

# 2. arrival only — the commitment ends when the tile is REACHED, not on a
#    boundary crossing.
arrive | TR_MOVEMENT=tfil TR_TFIL_COMMIT_ARRIVAL=1 | hold the dodge tile until it is reached

# 3. + hysteresis — "the path is still good" can no longer switch us.
arrive_hyst | TR_MOVEMENT=tfil TR_TFIL_COMMIT_ARRIVAL=1 TR_TFIL_COMMIT_MARGIN=10 | arrival + a 10-lava margin before switching

# 4. THE FULL FIX — arrival + hysteresis + no opposite-direction flip while the
#    bot is still accelerating.
arrive_hyst_norev | TR_MOVEMENT=tfil TR_TFIL_COMMIT_ARRIVAL=1 TR_TFIL_COMMIT_MARGIN=10 TR_TFIL_NOREV_SPEED=4 | the full fix
