# ─────────────────────────────────────────────────────────────────────────────
# arms_movement_b3.txt — BATCH 3 of the movement campaign: the REVERSAL/DWELL
# TIMING of the strafe picker, plus the picker's hedge geometry.
#
# Prior data this batch is built on (docs/movement_campaign.md §3–§5, MEASURED
# on the frozen panel across two independent sessions):
#   * `TR_MOVEMENT=strafe` BEATS the shipped `tfil` on round wins (+0.33…+0.58
#     wins/run, all four 95% CIs excluding 0, 9/9…11/12 decisive opponents).
#   * It wins by SURVIVAL: incoming hit rate 12.1–12.5% vs tfil's 17.6–18.2%,
#     ~50 less damage taken/run, with NO detectable damage cost.
#   * The RANGE knob is NOT the lever (Batch 2: none/250/600 made no separable
#     difference). The untouched axis is the picker ITSELF.
#
# The strafe engine flips the SIGN of `setForward` (a free reversal) and keeps
# each sign for `rand(DWELL_MIN..DWELL_MAX)` ticks. That dwell IS the reversal
# period, so it is the most likely remaining lever: the whole design premise is
# "movement is about WHEN to flip direction".
#
# REFERENCE is `strafe` (current defaults), NOT `tfil` — every delta is
# (arm − strafe). `tfil` is kept as the shipped control for cross-batch
# calibration.
#
# Format: name | ENV=value ENV=value | label
# ─────────────────────────────────────────────────────────────────────────────

# 1. the reference: current strafe defaults (dwell 6-20, spread 1, reach 144)
strafe | TR_MOVEMENT=strafe | reference — current strafe defaults

# 2. the shipped control (no env): lets this session be calibrated against
#    Batches 1-2 and shows the strafe-over-tfil effect again.
tfil | | shipped control (movement engine tfil, every knob at default)

# 3. FAST FLIP: reversal every ~5 ticks (dwell 2-8) instead of ~13.
#    Predicts LOWER incoming hit rate (each direction is exposed for less time)
#    but a less stable perpendicular line.
fast_flip | TR_MOVEMENT=strafe TR_STRAFE_DWELL_MIN=2 TR_STRAFE_DWELL_MAX=8 | reversal every ~5 ticks

# 4. SLOW FLIP: reversal every ~26 ticks (dwell 12-40). The opposite extreme:
#    predicts HIGHER incoming hit rate (a pattern gun gets a longer straight run
#    to learn) and worse survival.
slow_flip | TR_MOVEMENT=strafe TR_STRAFE_DWELL_MIN=12 TR_STRAFE_DWELL_MAX=40 | reversal every ~26 ticks

# 5. WIDE SPREAD: perpendicular jitter ±2 tiles and a 216px reach (vs ±1 / 144).
wide_spread | TR_MOVEMENT=strafe TR_STRAFE_SPREAD=2 TR_STRAFE_REACH=216 | wider hedge (±2 tiles, 216px reach)

# 6. NARROW: no perpendicular jitter and a 108px reach (vs ±1 / 144).
narrow | TR_MOVEMENT=strafe TR_STRAFE_SPREAD=0 TR_STRAFE_REACH=108 | no hedge, short 108px reach
