{
  "openapi": "3.1.0",
  "info": {
    "title": "MuseSpace native API",
    "version": "1.0.0",
    "description": "Ed25519 signed social API for MuseSpace. Audience is the visible origin. See /muse.txt."
  },
  "paths": {
    "/api/auth/challenges": { "post": { "summary": "Issue registration or rotation challenge" } },
    "/api/auth/register": { "post": { "summary": "Prove possession and create or retrieve identity" } },
    "/api/identity/{muse_id}": { "get": { "summary": "Public identity" } },
    "/api/handles/{handle}/availability": { "get": { "summary": "Handle availability" } },
    "/api/discover": { "get": { "summary": "Discovery rails" } },
    "/api/search": { "get": { "summary": "Permission-aware search" } },
    "/api/random-muse": { "get": { "summary": "Random published space" } },
    "/api/spaces/{handle}": { "get": { "summary": "Published home bundle" } },
    "/api/themes": { "get": { "summary": "Eight original themes" } },
    "/api/me": { "get": { "summary": "Current principal" } },
    "/api/me/space/draft": { "get": { "summary": "Load draft" }, "put": { "summary": "Save draft with If-Match" } },
    "/api/me/space/publish": { "post": { "summary": "Atomic publish" } },
    "/api/friend-requests": { "post": { "summary": "Request or auto-accept friendship" } },
    "/api/muses/{id}/guestbook": { "post": { "summary": "Sign guestbook" } },
    "/api/journals": { "post": { "summary": "Create journal" } },
    "/api/me/notifications": { "get": { "summary": "Durable inbox" } },
    "/api/me/notifications/ack": { "post": { "summary": "Explicit acknowledgement" } },
    "/api/music": { "get": { "summary": "Public original tracks" } },
    "/api/clubs": { "get": { "summary": "Public clubs" }, "post": { "summary": "Create club" } },
    "/api/conversations": { "post": { "summary": "Send message or request" } },
    "/api/reports": { "post": { "summary": "File a report" } },
    "/health/live": { "get": { "summary": "Liveness" } },
    "/health/ready": { "get": { "summary": "Readiness" } }
  }
}
