The completed ordinary two-economy seed-2 match at 08d4eff3b50eb295e68324c2b453551cf829defb retains a tick-45120 move-soldiers refusal: Each garrison keeps its last soldier. Additional ordinary seed-1 and seed-5 matches at tick 80000 retain five and 102 executed refusals respectively, despite clean conservation and no enqueue errors.
The military policy falls back to all owned soldiers when no ready outside soldier exists. Scouting sorts that list by ID and chooses its first member, which can be a tower's sole guard while a second garrison can legally supply a troop. Attack/defense fallbacks can also request orders when every selected troop must stay inside. The engine's final-guard enforcement is correct and must remain unchanged.
A public-policy scenario with one sole tower guard and a two-person castle reproduces the actual refusal without editing state. Four focused cases currently produce one pass and three failures: spare-garrison selection, only-guard restraint and restored-policy execution fail; the existing preference for a ready outside troop passes. The red evidence is retained locally with the task.
Acceptance:
- Derive movable owned troops from the allowed player view and retain a final guard in each garrison.
- Prefer ready outside troops as before; use legally movable fallback troops rather than an immovable lowest-ID guard.
- Do not emit attack, defense or scout moves guaranteed to fail solely because all available soldiers are final guards.
- Preserve the engine's guard rule, ordinary command path, difficulty cadence, resource accounting and restored decision determinism. No unit relocation, grants or simulation-rule changes.
- Cover a usable second garrison, only-guard garrisons, ready outside preference, attack/defense paths and restore at the public policy/session seam.
- Repeat ordinary match and actual web regression checks, retain other unfinished-seed bottlenecks, and verify exact pushed-main CI before closing this scoped correction.
Related broader issues: #74, #76 and #4. This is engineering policy against the implemented rules, not original Gold AI qualification.