# Баг 3. SchoolStore принимает users.json за сейв школы ## Симптом После первого входа в логе при старте сервера: ``` warn: HSchool.Server.Game.SchoolStore[0] Save D:\Github\h-school\src\HSchool.Server\saves\users.json has id 0; ids start at 1. Leaving the file in place. ``` Ожидали, что список игроков рядом со школами не попадает в загрузку сейвов. ## Причина Фаза 38 положила `saves/users.json` в тот же каталог, что и `{id}.json`. `SchoolStore.LoadAll` обходит все `*.json`, пропуская только `index.json`, `*.people.json` и `*.timetable.json`. У документа пользователей нет поля `id`, десериализация в `SchoolSave` даёт `Id = 0`, срабатывает предупреждение. Файл на месте остаётся, карточки школы из него нет. ## Путь Пропускать `users.json` так же, как `index.json`. Не сужать обход до `{digits}.json` — это другой контракт сканера. ## Задачи - [x] `LoadAll` не читает `users.json` как сейв - [x] Тест: каталог с `1.json` и `users.json` возвращает одну школу ## Тест, без которого не закрыт `HSchool.Server.Tests`: `LoadAll` рядом с валидным `{id}.json` и `users.json` (документ пользователей, без `id`) возвращает только школу. ```bash dotnet test tests/HSchool.Server.Tests --filter FullyQualifiedName~SchoolStore ``` ## Стоп Форму `users.json` и HTTP сессии не трогать. `wwwroot` / `UseFileServer` — соседнее предупреждение при старте, не этот баг.