# OpenAPI snapshots The server already generates OpenAPI via **NSwag** (Swagger UI at `/swagger`, documents `v1`, `v1.1`). This folder holds the **published `swagger.json` snapshot(s)** so the frontend can generate/verify types without running the backend. ## Backend: publish on every API-shipping phase After adding/changing endpoints and confirming the build, export the OpenAPI document and commit it here as `swagger.v1.json` (overwrite — git history is the version trail). Typical options: - Run the API and save `GET /swagger/v1/swagger.json` to `dev/contracts/openapi/swagger.v1.json`, **or** - Use the NSwag CLI / build target the server already wires to emit the document. Record in your handoff that the snapshot was refreshed. Keep it in sync with `../domains/*.md` — the markdown is the human contract, this JSON is the machine contract; they must agree. ## Frontend: consume Generate types from `swagger.v1.json` (e.g. an `openapi-typescript`-style step) **or** hand-write `src/services/{domain}/types.ts` to match it. Either way, the wire shapes come from here — not from guessing. Casing/format questions are resolved by this file. > Until the first API-shipping backend phase runs, this folder is empty by design.