Descritores well-known de OpenAPI
`GET /.well-known/openapi.json` e `GET /.well-known/openapi.yaml` servem o contrato público curado de OpenAPI 3.1 no caminho well-known RFC 8615. Ambos são não autenticados, devolvem ETags fortes derivados de um hash de conteúdo e respeitam `If-None-Match` com `304 Not Modified` para que o tooling possa cachear de forma agressiva. O descritor é filtrado contra a denylist pública de `app/core/public_contract_filter.py`, que espelha o array `denylist` do contrato do site: rotas internas, administrativas e de plataforma nunca aparecem. Ambos os formatos são semanticamente idênticos; só a serialização difere.