== legal swap: plan matches model == model: legal true depth 1 score 30 moves 1 plan: legal true rounds 1 score 30 moves 1 final==model true contiguous true final board: RRPBORRG PGPPOGRO YYBOPRYB GBYBYRGP OGBYRGOY BYRRPRBG YOYYROBB OROBPPRB == illegal swap: untouched == legal false rounds 0 score 0 moves 0 == input gate: locked while animating == accepts idle true busy false settled true release_gate_commits true press_gate_commits false ok: animation layer leaves the model result unchanged