Решили: выкладка в Steam идёт отдельным workflow по кнопке и по тегу, а версию сборки назначает сам тег. bundleVersion в ProjectSettings остаётся версией для локальной работы.

Сказано: «надо как-то поставить нам в память ветку или в пайплан что-то в духе “НЕ ЗАБЫТЬ ПОМЕНЯТЬ ВЕРСИЮ”. И всегда ставить теги на коммите. если создаем новую версию для прода. Согласна?» (02.08.2026, сессия d084ed77). Просьба принята по сути и изменена по способу: «не забыть» — задача, которая проигрывается на третий раз, а проигрыш замечают по чужому багрепорту с неверным номером. Тег ставится осознанно и ровно тогда, когда версия меняется, поэтому владельцем версии назначен он — забывать стало нечего.

Почему это не просто удобство: Application.version едет в отпечаток контента и сверяется на кооп-рукопожатии. Версия, назначенная тегом, автоматически разводит два клиента с разными сборками — они честно откажутся играть вместе. Следствие для тестов: оба игрока обязаны быть из одного билда, «ты из редактора, друг из Steam» не работает по построению.

Триггер — кнопка и тег, а не каждый push. Плеер больше гигабайта, сборка идёт десятки минут; выкладка это решение, а не следствие коммита. Автоматика на каждый master через месяц стала бы шумом, который никто не смотрит.

В боевую ветку Steam из CI не ставит live никто. Valve и сама режет API на ней, но правило названо своим шагом с внятным отказом: сообщение о чужом отказе увидит тот, кто уже нажал, и через двадцать пять минут сборки.

Отдельный аккаунт-билдер с двумя правами (Edit App Metadata, Publish App Changes To Steam) — не паранойя, а рекомендация Steamworks: его учётные данные ложатся в секреты ПУБЛИЧНОГО репозитория.

Грабли, заложенные в проверку: steam_appid.txt, попавший рядом с exe, отключает проверку владения — игра запустится у кого угодно. В репозитории он лежит вне Assets/ и в плеер не попадает, но шаг workflow его ищет и падает: это ровно тот файл, который однажды скопируют «чтобы заработало», и по игре заметить это нельзя.

Владелец правды: .github/workflows/steam-deploy.yml, docs/steam-deploy-setup.md.