List
GET /api/v1/policies returns every published policy without its text: slug, title, summary, version, effective_on, placements and provisional.
provisional: true means the text is published but still pending owner review; the page shows a notice saying so.
One policy
GET /api/v1/policies/{slug} returns the same fields plus body, the text in Markdown. An unknown slug returns 404. The rendered page is at https://duskstate.dev/{slug}.
Policies published now: privacy, terms, refunds, store-policy.
Versions
A version looks like privacy-2026-10-04, with .2, .3 for later versions on the same day. Publishing a new version supersedes the previous one; superseded versions are kept for the record.
Consent
Forms that record consent send consent_version. It must equal the version of the privacy policy in force at the time of submission. If the notice changed after you read it, the request fails with 409 and detail.current_version; read the current notice and submit again with that version.