Same treatment: named types replace gin.H literals, and every handler gets a swaggo doc block. VulnSummaryResponse uses pointer fields so the db-freshness block stays entirely absent when no vulndb_meta document exists yet, matching the handler's original conditional gin.H exactly.