# Стандарт спрайтов предметов

Утверждённый технический холст: **256x256**, PNG RGBA для всех категорий, включая кольца.

- Масштаб определяется полным исходным холстом, не alpha bounds.
- Исходные пустоты и положение рисунка сохраняются. Силуэт нельзя обрезать или растягивать до краёв.
- Неквадратный холст вписывается пропорционально; добавленные поля прозрачны и симметричны с точностью до округления одного пикселя.
- При технической нормализации существующие источники не перекрашиваются, фон и внутренние отверстия не пересоздаются. Исходные файлы всегда остаются неизменными.
- Копии лежат в `normalized-256/`. `normalization.json` хранит source/output path, SHA256, размеры, объём, alpha bounds и предупреждения.

`upscaled` отмечает увеличение маленького источника. `source-without-transparency` означает отсутствие прозрачных пикселей даже при наличии RGBA. Это не чистый cutout. `source-touches-border` описывает исходный рисунок, но не требует его обрезки или перерисовки. Alpha bounds считаются по alpha > 16 и используются только для диагностики.

Для будущих генераций `finish-sprite.mjs` сначала отделяет согласованный фон, затем сохраняет композицию полного исходного холста на 256x256. Готовый файл не перезаписывается. Технический QA не заменяет художественную проверку.

Перед сменой палитры проверяется provenance. Original, Top Set и аналог существующего рисунка сохраняют исходные цвета. Аналог не считается созданным с нуля, даже если файл находится в generated. Различные новые палитры разрешены только предметам без исходника, созданным с нуля. Художественная приёмка проверяет каждый материал по исходнику, а не только отличие соседей.

Из исторических323 перекрасок действуют192 для предметов без исходника.131 рекомендация возвращена к палитре источника;42 Top Set используют отдельный accepted восстановления. Старые PNG, QA и обзоры сохранены как история. Для RGB-масок восстановления alpha, RGB прозрачных пикселей и тёмный контур (maxRGB<=45) сохраняются побайтно. Унаследованное касание края не исправляется resize. Технический normalizer не выполняет перекраску.

Две существующие пробы остаются непринятыми. Нормализация не добавляет рекомендации, не меняет покрытие, не назначает Sprite в Unity и не подтверждает художественный масштаб между разными наборами.
