Why half-split is optimal
For any binary question that splits N candidates into groups of size a and b = N β a, the adversary can always answer to leave you with max(a, b) candidates. Minimising max(a, b) over the question set is exactly the greedy half-split rule, and a straightforward induction shows it is optimal for the whole game tree (not just one turn).
BoardSolve ranks every encoded question by worst-case eliminations and surfaces ties so you can pick the one that's easiest to phrase out loud. A manual toggle lets you mark characters eliminated by homemade questions the engine can't encode.