``` ARD-1762: Миграция graphql-go-tools v1 → v2 1. Nil pointer panic при WebSocket upgrade - ws.HTTPUpgrader передавался как nil в NewGraphqlHTTPHandler - Исправление: инициализация дефолтного &ws.HTTPUpgrader с Protocol: func(proto string) bool { return proto == "graphql-ws" } 2. Playground не работал - v2 playground использует @graphiql/plugin-explorer который блокируется CORS при загрузке с CDN - Исправление: написали кастомный initPlayground в application.go с GraphiQL v2 без проблемного плагина, убрали зависимость от v2/pkg/playground 3. WebSocket ws:// блокировался на HTTPS - Playground формировал subscription endpoint с ws:// вместо wss:// на задеплоенном окружении - Исправление: динамическое определение протокола по window.location.protocol 4. Пустой GraphQL запрос query {} - PingApiGateway в tools/http/handler слал невалидный запрос без полей - Исправление: заменили на query { __typename } 5. Заголовки авторизации не пробрасывались к subgraph'ам - В v2 FederationEngineConfigFactory не передаёт клиентские заголовки к subgraph'ам (код закомментирован в библиотеке) - WithAdditionalHttpHeaders кладёт заголовки в resolve.Context, но до http.Request subgraph'а они не доходили - Исправление: кастомный headerForwardingTransport который перехватывает все запросы к subgraph'ам и добавляет Authorization / X-Service-Authorization из клиентского запроса, переданного через context.WithValue ```