PASS FIELD: initially off, headland -> rows -> turn -> rows
PASS FIELD: stays chopper on entire straight headland
PASS FIELD: no hired worker means no changes
PASS FIELD: disabled controller does not start
PASS FIELD: disable restores initially off state
PASS FIELD: disable restores initially on state
PASS FIELD: unknown phases cannot bootstrap control
PASS FIELD: unknown after headland never means row
PASS FIELD: unknown worker status preserves pending ownership
PASS FIELD: manual same-value off command suspends
PASS FIELD: direct outside mutation is not fought
PASS FIELD: AI stop restores and resets manual suspension
PASS FIELD: writer failure suspends instead of per-frame retry
PASS FIELD: row writes are transitions only
PASS FIELD: row confirmation resets on unknown
PASS FIELD: a single long frame is not stable row evidence
PASS FIELD: independent combines do not share intent
PASS FIELD: unknown swath value is not truthy OFF/ON
PASS FIELD: unknown turning cannot enable a row
PASS TURN legacy: initially off is preserved
PASS TURN legacy: initially on restored only after explicit turn end
PASS Native: captured first headland with initial=nil is recognised
PASS Native: simulated inner row with captured planned-row metadata
PASS Native: explicit false initial flag is supported
PASS Native: nil initial and nil completion remain UNKNOWN
PASS Native: nil initial and unfinished initial segment mean APPROACH
PASS Native: initial=true overrides work markers
PASS Native: non-boolean initial is not silently accepted
PASS Native: course turn flag has priority
PASS Native: vehicle turn flag has priority
PASS Native: active segment turn flag has priority
PASS Native: unknown vehicle turning cannot enable rows
PASS Native: unknown native turning cannot enable rows
PASS Native: missing segment turning flag is not false
PASS Native: segment corner cutout cannot be a row
PASS Native: course corner cutout cannot be a row
PASS Native: missing segment corner state fails closed
PASS Native: unready segment cannot enable straw
PASS Native: island work is outside supported row classification
PASS Native: missing island flag is not a normal interior row
PASS Native: segmentId missing cannot be guessed from array position
PASS Native: planned headland index is resolved by ID not array index
PASS Native: consistent duplicate IDs from split segments are allowed
PASS Native: conflicting duplicate IDs fail closed
PASS Native: active versus planned phase conflict fails closed
PASS Native: false headland marker alone does not prove inner work
PASS Native: planned false marker without row metadata is insufficient
PASS Native: headland count is never used as live phase
PASS Native: explicit headland remains useful without a plan match
PASS Native: row-first job can begin in a confirmed row
PASS Native: zero headlands never creates a phantom headland
PASS Native: no course and multiple courses remain unknown
PASS Native: only getActiveSegment is used, not guessed aliases
PASS Native: getter exceptions return UNKNOWN without throwing
PASS Native: zero or NaN work length is not trusted
PASS Native: unknown activity retains ownership uncertainty
PASS Native: AI stop clears stale phase info
PASS Native: delayed plan population is rechecked
PASS Native: long headlands do not exhaust row transition diagnostics
PASS Native: stable segments do not spam phase logs
PASS Native: diagnostics rate-limited without delaying state decisions
PASS Integration: packaged FIELD mode headland and rows without preset
PASS Integration: FIELD unknown does not fall back to turns silently
PASS Integration: menu setter restores state and retains a single popup
PASS Integration: no custom input callbacks or player lifecycle hooks
PASS Integration: repeated updates never register input and preserve other actions
PASS Integration: no permanent HUD or startup notification
PASS Integration: manual setter wins and preserves all native returns
PASS Integration: client-only vehicles cannot write straw mode
PASS Integration: clean unload restores vehicle and ground wrappers without input edits
PASS Integration: native ground returns observed without changes
PASS Integration: TURN config selects unchanged prior-off policy
PASS FIELD: validated initial approach can disable initially-on swath
PASS FIELD: validated initial turn can disable initially-on swath
PASS FIELD: unvalidated initial approach remains non-owning
PASS FIELD: course replacement unknown cannot switch a chopped headland on
PASS Integration: initial=nil end-to-end without manual swath preset
PASS Integration: initial approach before headland is chopped
PASS Integration: headland and row transitions do not resurrect debug HUD
PASS Integration: unknown course data after headland never enables straw
PASS Integration: helper stop restores then restart works independently
PASS Integration: direct manual change suspends without fighting operator
PASS MENU setter: paused GUI accepts a real state change
PASS MENU only: old shortcut does nothing in gameplay, menus or on foot
PASS MENU setter: same state is idempotent and does not re-notify
PASS MENU setter: invalid states cannot change automation
PASS MENU only: changing state creates no F1 action or input binding
PASS MENU popup: exactly five seconds of gameplay and one line only
PASS MENU popup: menu and pause suspend countdown until gameplay
PASS MENU popup: rapid real switches replace text and reset timeout
PASS MENU setter: restore only once and resume field control
PASS MENU setter: exit/unloaded mission rejects change
PASS MENU unavailable: retries without reviving a keyboard fallback
PASS 122 AI-only: not-hired steering/manual driving leaves swath unchanged even with residual course data
PASS 126 INPUT: load, update, menu change and unload never access input globals
PASS 126 INPUT: absent input APIs cause no missing-action or hook warning
PASS 126 INPUT: map reload does not reintroduce bindings or a startup popup
PASS 126 FILTER: finite tank grain combine remains supported
PASS 126 FILTER: infinite tank forage harvester is untracked and never written
PASS 126 FILTER: invalid capacities and missing tank metadata are rejected
PASS 126 SCOPE: global menu setting still restores two tracked combines
RESULT cases=101 passed=101 failed=0 assertions=1341
