Even with the re-indexing, there is more subtle conditional search logic that would be good to implement, such as "if on left/right edge of the board, prioritize vertically-oriented words", or "greedily prioritize letter overlaps between words".
There is no way (without introducing insane complications) to add this logic to MiniZinc, so instead write a dedicated C++ solver. Unclear what else the Chuffed optimizer is doing in the background (e.g. activation-based priority, smart-restarting), so this might do more harm than good. Might also make the puzzles too deterministic and therefore uninteresting.
Even with the re-indexing, there is more subtle conditional search logic that would be good to implement, such as "if on left/right edge of the board, prioritize vertically-oriented words", or "greedily prioritize letter overlaps between words".
There is no way (without introducing insane complications) to add this logic to MiniZinc, so instead write a dedicated C++ solver. Unclear what else the Chuffed optimizer is doing in the background (e.g. activation-based priority, smart-restarting), so this might do more harm than good. Might also make the puzzles too deterministic and therefore uninteresting.