The rules, and the three phases nobody explains
Each player has nine pieces. You take turns placing them on any empty point. Once all eighteen are down you take turns moving a piece along a line to an adjacent empty point. Whenever you get three of your own pieces in a row along one of the board's marked lines — a mill — you immediately remove one of your opponent's pieces from the board.
You may not take a piece that is standing in a mill, unless every one of their pieces is in one. This is the rule people get wrong more than any other, and the site we captured as our benchmark simply refuses the click without telling you why. Here, during the removal step, takeable pieces are ringed in orange and protected ones are dimmed and crossed out.
Flying. When you are down to exactly three pieces, you may move any of them to any empty point rather than only an adjacent one. It is the losing player's last chance and it changes the game completely. Plenty of people who learned this at a kitchen table have never heard of it, so the panel beside the board names your current phase — Placing, Moving or Flying — for the whole game.
You lose when you are reduced to two pieces, or when you have no legal move at all. There is no passing in Morris: being blocked in completely is a loss.
Mills are drawn, because a mill is the whole game
Completed mills are drawn as a coloured bar through the three points, and when you pick up a piece, any destination that would close a mill is ringed in gold. That is not an engine giving you advice — it is the board showing you what the rules already say, the same way a chess board shows you which squares exist. Missing a mill you had available is not a skill test, it is an eyesight test.
The game is solved, and we are not claiming to have solved it
Ralph Gasser proved in 1993 that Nine Men's Morris is a draw with perfect play, using retrograde analysis over roughly ten billion endgame positions plus an eighteen-ply search over the opening. That is the published anchor for this game.
Our engine does not reproduce it and we do not pretend it does. Endgame databases of that size are a project of their own. What we check instead, on every build: the board is combinatorially exact — 24 points, 32 edges, 16 mills, and every point lying on exactly two mills, which is a real cross-check because the mill list and the adjacency list are written independently of each other. Small endgames are then solved twice, once with alpha-beta and once with an unpruned search, and the two must agree exactly. And every rule named above is tested individually.
We would rather tell you the anchor exists and that we fall short of it than quietly check something easier and let you assume otherwise.