json.loads after read_text() used locale default on Windows; UTF-8 state file could mis-parse. Made-with: Cursor