Proof of Light — Privacy / Privacidade

Privacy policy — website and Discord Activity

Updated October 23, 2026. Developer, operator and data controller: Rafael Assato Ando. Privacy contact: [email protected].

This policy covers the Proof of Light website, Discord Activity and their previews. You can play as guest or, when online accounts are enabled, sign in to a Proof of Light account shared with the website. Guest play does not create an account or upload guest results, except when you explicitly enable optional public Daily or Double Exposure sharing described below. Signing in with a game password does not automatically link your Discord identity. You can choose to link it separately.

What stays on your device

Optional online accounts

Account creation verification

Cloudflare Turnstile verifies new account registrations to reduce automated abuse. Its widget can process connection and browser signals under Cloudflare’s privacy policy. The server validates a short-lived token; the game does not store challenge tokens in D1. This check is not loaded during guest gameplay.

Discord, hosting and connection data

Provider policies: Discord and Cloudflare. App Tester invitations are managed by Discord.

While disconnected, signed-in gameplay can queue puzzle events and Sprint results in memory for synchronization when the connection returns. These pending results can be lost if the session is closed or reloaded.

Guest browser estimate

Entering guest play stores a random identifier and a counted flag in your browser. The server keeps only a hash of that identifier to avoid counting the same browser repeatedly. It is not linked to an account, Discord identity or gameplay history. These hashes are retained to maintain a cumulative estimate from this feature’s introduction, not a count of active or unique people. Different browsers/devices or clearing storage can count again; creating an account does not remove an earlier guest count. Brief hashed network-address rate-limit records help prevent automated inflation. Clearing site storage removes the local identifier but does not remove its existing server hash.

Deleting data and contacting us

You can remove guest profiles through the game's Delete profile action. Other local settings, editor data or scoreboard entries may remain. To remove all locally stored game data, clear the Activity/site storage using your browser or Discord client controls where available. Clearing local data may permanently erase your progress.

Optional support links open Ko-fi outside the game. Pix support displays a public recipient key and QR code; transfers happen in the supporter’s banking app and expose normal bank-provided payment details to the developer. Ko-fi and its payment providers handle checkout under their own privacy policies. Contributions are received by the developer, who may see supporter details and messages supplied by those services. The game does not collect payment-card details or link contributions to game accounts, progress or gameplay benefits.

For privacy questions, help removing data, or requests about information you have sent directly to the developer, email [email protected]. We use correspondence to respond to your request and retain it as needed to handle that request and applicable obligations. You can request deletion of that correspondence. Do not send passwords or recovery codes. Requests about provider-held data should also be directed to the relevant provider.

Optional Discord account linking

If you choose Link Discord, Discord asks permission for basic identification (identify). We verify your Discord ID and store it with your existing game account and the link date, so you can sign in with Discord. We do not request email, messages or server lists, and do not store Discord passwords, access/refresh tokens or avatars. Discord display names are stored only for the separate optional public Daily sharing described below. Short-lived authorization records store hashed random verification values, the action, request origin, callback address, expiry and, for linking, the account/session references. Expired authorization records are removed on later authorization requests. Unlinking removes the identity association and ends other Discord sign-in sessions; your game account and password access remain. Deleting your game account removes the association. You can also revoke the app authorization in Discord settings. Ordinary guest play does not request this identity authorization. The separate optional Daily-sharing feature can request Discord identity authorization without creating or linking a game account.

Synced account preferences

For registered players, we store the selected theme and Custom piece/beam choices with a revision and update timestamp, so these choices can follow the account across devices. Guest appearance choices stay in the browser. We also store portable account preferences such as language, color scheme, beam behavior, controls, portal display and sound/music choices, with a revision and update timestamp. Account-scoped cached preferences and pending changes are kept locally to support reconnection. Board size, orientation, tip dismissals and sharing permissions stay local. Appearance records are deleted with the game account.

Double Exposure completions and optional sharing

Registered accounts save a private challenge identifier, number and completion timestamp so a website clear can be offered for sharing later in the Discord Activity. Full setups remain in the browser; layouts sent for clear validation are not stored in this completion table. Guests retain their completion in their browser only. Double Exposure sharing has a separate opt-in setting, or you can share a single clear from its congratulations screen. We post only your Discord display name and challenge number through the same community webhook, with no layouts or solution details. Discord ID, server ID, challenge ID and message ID are retained to prevent reposts across devices. Uncertain deliveries are not automatically retried. Turning off automatic sharing stops future automatic posts; existing posts and their independent deduplication records remain. Private account completion records are deleted with the account; contact us to remove independent Discord posts or sharing records.

Optional public Daily results in our community server

When enabled in Settings, this feature requests Discord identity authorization and verifies your active Activity instance belongs to our community server. It works independently of game accounts, including for guests. Your Discord display name, Daily date/difficulty, completion time, hints and misfires are posted publicly in #daily-results. We retain your Discord ID, server ID, result details and message ID to update one card per player per day and prevent duplicates. These records are cleaned up opportunistically after 60 days of inactivity when later results are shared. OAuth tokens are not stored; a signed sharing authorization stays in browser memory for up to six hours. Turning sharing off stops future posts; existing Discord messages remain until deleted by channel moderators or the webhook operator. Deleting a game account does not delete these independent Discord messages or sharing records. Contact the privacy email above for help removing them.

Política de privacidade — site e Atividade do Discord

Atualizada em 23 de outubro de 2026. Desenvolvedor, responsável pelo jogo e controlador dos dados: Rafael Assato Ando. Contato para privacidade: [email protected].

Esta política se aplica ao site de Prova de Luz, à Atividade do Discord e às suas prévias. Você pode jogar como visitante ou, quando as contas online estiverem disponíveis, entrar em uma conta de Prova de Luz compartilhada com o site. Jogar como visitante não cria uma conta nem envia seus resultados ao banco de dados, exceto quando você ativa explicitamente o compartilhamento público opcional de resultados diários ou de Dupla Exposição descrito abaixo. Entrar com a senha do jogo não vincula automaticamente sua identidade do Discord. Você pode optar por vinculá-la separadamente.

O que fica no seu dispositivo

Contas online opcionais

Verificação de cadastro

O Cloudflare Turnstile verifica novos cadastros para reduzir abusos automatizados. O componente pode processar dados de conexão e sinais do navegador conforme a política de privacidade da Cloudflare. O servidor valida um token temporário; o jogo não armazena esses tokens no D1. A verificação não é carregada durante partidas de visitantes.

Discord, hospedagem e dados de conexão

Políticas dos serviços: Discord e Cloudflare. Convites para testar o aplicativo são gerenciados pelo Discord.

Estimativa de navegadores visitantes

Ao entrar como visitante, um identificador aleatório e uma confirmação de contagem ficam no navegador. O servidor mantém apenas o hash do identificador para evitar contar o mesmo navegador repetidamente. Não há vínculo com conta, identidade do Discord ou histórico de partidas. Os hashes são mantidos para uma estimativa acumulada desde a introdução do recurso, não uma contagem de pessoas únicas ou ativas. Outros navegadores/dispositivos ou a limpeza dos dados podem contar novamente; criar uma conta não remove uma visita anterior. Registros temporários de limite de requisições com hash do endereço de rede ajudam a conter aumentos automatizados. Limpar o armazenamento remove o identificador local, mas não o hash já registrado no servidor.

Sem conexão, o jogo pode manter eventos de desafios e resultados de Sprint de jogadores com conta na memória para sincronizar quando a conexão voltar. Esses resultados pendentes podem ser perdidos ao fechar ou recarregar a sessão.

Excluir dados e entrar em contato

Você pode remover perfis de visitante pelo botão Excluir perfil do jogo. Outras configurações, dados do editor ou entradas do placar podem permanecer. Para remover todos os dados locais do jogo, limpe o armazenamento da Atividade ou do site pelos controles do navegador ou do Discord, quando disponíveis. Isso pode apagar seu progresso permanentemente.

Os links de apoio opcional abrem o Ko-fi fora do jogo. O apoio via Pix mostra uma chave pública do recebedor e um QR code; as transferências são feitas no aplicativo bancário do apoiador e mostram ao desenvolvedor os dados normalmente fornecidos pelo banco. O Ko-fi e seus serviços de pagamento processam as contribuições conforme suas próprias políticas de privacidade. O desenvolvedor recebe as contribuições e pode ver os dados e as mensagens dos apoiadores fornecidos por esses serviços. O jogo não coleta dados de cartão nem vincula contribuições a contas, progresso ou vantagens no jogo.

Para dúvidas sobre privacidade, ajuda para remover dados ou solicitações sobre informações enviadas diretamente ao desenvolvedor, escreva para [email protected]. Usamos a correspondência para responder à sua solicitação e a mantemos pelo tempo necessário para atendê-la e cumprir obrigações aplicáveis. Você pode solicitar a exclusão dessa correspondência. Não envie senhas nem códigos de recuperação. Solicitações sobre dados mantidos pelos serviços também devem ser dirigidas ao serviço responsável.

Vínculo opcional com o Discord

Ao escolher Vincular Discord, o Discord solicita permissão para identificação básica (identify). Verificamos seu ID do Discord e o armazenamos com sua conta existente do jogo e a data do vínculo, para permitir o acesso pelo Discord. Não solicitamos e-mail, mensagens nem lista de servidores, e não armazenamos senhas do Discord, tokens de acesso ou renovação, avatares nem nomes do Discord. Registros temporários de autorização guardam valores aleatórios de verificação em forma de hash, ação, origem, endereço de retorno, prazo e, para vínculos, referências da conta e sessão. Registros expirados são removidos nas próximas solicitações de autorização. Desvincular remove a associação e encerra outras sessões iniciadas pelo Discord; sua conta do jogo e o acesso por senha permanecem. Excluir a conta do jogo remove o vínculo. Você também pode revogar a autorização do aplicativo nas configurações do Discord. Jogar normalmente como visitante não solicita essa autorização de identidade; o compartilhamento opcional de resultados diários pode solicitá-la separadamente.

Preferências da conta sincronizadas

Para jogadores registrados, armazenamos o tema selecionado e as escolhas de peças/feixe do modo Personalizado, com revisão e data de atualização, para que acompanhem a conta entre dispositivos. Escolhas de visitantes ficam no navegador. Também armazenamos preferências portáteis da conta, como idioma, esquema de cores, comportamento do feixe, controles, exibição dos portais e escolhas de som/música, com revisão e data de atualização. Preferências em cache e alterações pendentes são mantidas localmente por conta para permitir reconexão. Tamanho do tabuleiro, orientação, dicas dispensadas e permissões de compartilhamento permanecem locais. Esses registros são excluídos com a conta do jogo.

Conclusões de Dupla Exposição e compartilhamento opcional

Contas registradas salvam um registro privado com identificador, número do desafio e data da conclusão, para oferecer o compartilhamento de uma conclusão feita no site ao entrar depois na Atividade do Discord. Montagens completas continuam no navegador; montagens enviadas para validar a conclusão não são armazenadas nesta tabela. Visitantes mantêm a conclusão apenas no navegador. Dupla Exposição tem uma opção separada de compartilhamento automático, ou você pode compartilhar uma única conclusão na tela de parabéns. Publicamos apenas seu nome do Discord e o número do desafio pelo mesmo webhook da comunidade, sem montagens nem detalhes da solução. ID do Discord, servidor, desafio e mensagem são mantidos para evitar duplicatas entre dispositivos. Envios incertos não são repetidos automaticamente. Desativar o compartilhamento automático impede futuras publicações automáticas; publicações existentes e seus registros independentes de deduplicação permanecem. Registros privados de conclusão são excluídos com a conta; entre em contato para remover publicações ou registros independentes do Discord.

Resultados diários públicos opcionais no servidor da comunidade

Quando ativado nas Configurações, este recurso solicita autorização de identidade do Discord e verifica que a sessão ativa da Atividade pertence ao nosso servidor da comunidade. Funciona independentemente das contas do jogo, inclusive para visitantes. Seu nome de exibição do Discord, data/dificuldade do Diário, tempo, dicas e disparos falhos são publicados em #daily-results. Mantemos seu ID do Discord, ID do servidor, resultados e ID da mensagem para atualizar um cartão por jogador por dia e evitar duplicatas. Esses registros são removidos de forma oportunista após 60 dias de inatividade, quando novos resultados são compartilhados. Tokens OAuth não são armazenados; uma autorização assinada fica na memória do navegador por até seis horas. Desativar impede novas publicações; mensagens existentes permanecem até serem removidas pelos moderadores ou responsável pelo webhook. Excluir a conta do jogo não remove essas mensagens ou registros independentes do Discord. Para solicitar remoção, use o e-mail de privacidade acima.