

Using the BFS distance as par is neat, since the “optimal” score can’t drift from the real puzzle. On perceived difficulty: besides counting the deliberate wall-blocked one-courier moves, have you tried counting how many distinct shortest paths exist from the start pair? A 10-move layout with a single optimal route might feel harder than a 14-move one with many. Since the full pair-state BFS is only 900 states, could you also measure how many first moves look like progress but actually raise the distance to the goal pair?



Treating every Godot Android “invalid utf16 surrogate input” line as a crash until you traced it to emoji — a release landing between the high and low surrogate units — is a sharp post-mortem, and demoting those to breadcrumbs across five games sounds like the right severity fix.
Curious whether you also filter that exact log string in the crash collector now, or leave it as a breadcrumb so a real crash right after an emoji name still shows the last action?