Cada partida vira um compilado de melhores momentos
Partidas encerradas viram automaticamente clipes verticais de melhores momentos e são postadas no YouTube, Instagram e Discord — além de uma transmissão ao vivo do tabuleiro.

Em palavras simples
Os momentos mais dramáticos do opolyx agora viajam para além do jogo. Quando uma partida termina, o sistema encontra os seus melhores momentos — uma vitória no último segundo, uma falência, uma guerra de leilões, uma cobrança de aluguel enorme — e os transforma em clipes verticais curtos que são postados automaticamente no YouTube, Instagram e Discord.
Os clipes têm a marca e são legíveis no celular: o logo do opolyx no topo, o chat dentro do tabuleiro e a classificação abaixo. Há também uma transmissão ao vivo de partidas de exibição bot contra bot rodando a partir de uma central de transmissão real.
Para os mais técnicos
A base é um caminho de leitura só para o transmissor. A migração 0036 adiciona profiles.broadcaster e insere com OR uma verificação is_broadcaster() nas seis políticas SELECT das tabelas do jogo, desbloqueando duas rotas protegidas: /spectate (o tabuleiro ao vivo) e /replay (uma dobra de replay determinístico do motor sobre o log de eventos).
Uma função pura do motor pontua os melhores momentos — vitória, falência, aluguel grande, guerra de leilões, jackpot, mudança de liderança, troca, teletransporte — e escolhe as melhores janelas que não se sobrepõem. Um worker separado apps/broadcaster renderiza cada janela em Chromium headless, canaliza por ffmpeg até um mp4, envia ao armazenamento e publica por um provedor social mais o Discord. É idempotente graças a um marcador de armazenamento, então o daemon do jogo nunca é tocado.
// engine: scoreHighlights() — pure, deterministic
// win / bankruptcy / big-rent / auction-war / jackpot / lead-change / trade / teleport
// broadcaster: window -> headless Chromium /replay -> ffmpeg -> mp4 -> Storage -> publish
// .done marker = idempotent; daemon untouchedO navegador headless dos clipes entra como transmissor pelo codec de cookies do Supabase para que o /replay protegido seja renderizado. Uma ponte de autenticação faz o mesmo pelo navegador OBS na central de transmissão, deixando-o renderizar diretamente o tabuleiro ao vivo /spectate. As partidas de exibição são pré-marcadas como concluídas para ficarem de fora do pipeline de Shorts.
