Descrittori well-known di OpenAPI
`GET /.well-known/openapi.json` e `GET /.well-known/openapi.yaml` servono il contratto pubblico curato di OpenAPI 3.1 sul percorso well-known RFC 8615. Entrambi non richiedono autenticazione, restituiscono ETag forti derivati da un hash del contenuto e rispettano `If-None-Match` con `304 Not Modified` per consentire un caching aggressivo. Il descrittore è filtrato contro la denylist pubblica di `app/core/public_contract_filter.py`, che rispecchia l’array `denylist` del contratto del sito: rotte interne, admin e di piattaforma non compaiono mai. I due formati sono semanticamente identici; differisce solo la serializzazione.