Metodologia

Como o mapa metro é computado

Derivação de importância; layout em camadas; semântica de versionamento; limitações conhecidas.

Derivação de importância

O tamanho da estação é guiado por uma pontuação de importância em [0..1] calculada a partir da contagem de perfis anexados (40%), contagem de votos de painel (30%, lado de leitura da M19.5), contagem de patrocinadores (20%, lado de leitura da M19.7) e recência (10%). Até M19.5 / M19.7 chegarem, a fórmula degrada graciosamente — os LEFT JOINs retornam zero e a pontuação reflete a densidade atual do corpus.

Layout em camadas (Sugiyama feito à mão)

Fazemos o layout em camadas à mão em vez de adicionar `d3-dag`. As estações são atribuídas a camadas pela profundidade do maior caminho de predecessores; em cada camada são ordenadas baricentricamente (média da prioridade y dos predecessores) com critério estável por id da estação. `roles.metro_layout_hint` da curadoria do admin em produção sobrescreve ambas as coordenadas, se presente.

Semântica de versionamento

A versão é um hash FNV-1a 64 bits sobre uma serialização determinística de (disciplina, jurisdição, localidade, identidade-arquétipo de papéis, flags de ponto de parada de IUs, vinculações de material). Mesmo conteúdo → mesmo hash. Quando você incorpora um mapa com versão fixada, o iframe permanece estável apesar de futuras edições.

Pipeline de exportação estática

Exportações estáticas usam `@resvg/resvg-js` (SVG → PNG raster) e `pdf-lib` (PNG → PDF de uma página). Sem Chromium headless — mantém o contexto Docker enxuto e cold-starts do Cloud Run rápidos. Três tamanhos (pequeno/médio/grande); três formatos (svg/png/pdf).

Como citar o mapa

Cite um mapa pelo link permanente: /[lang]/transformations/[discipline]/v/[version]?jurisdiction=ISO3. O link permanente fixa a versão por hash de conteúdo; mesmo que o corpus evolua, a URL citada permanece estável.