{"version":"v1","mach":{"microservices":"Bounded contexts: identity, knowledge, imaging, dicom, cases. One deploy unit today; contracts are split so each can move to its own runtime.","apiFirst":"Every capability is reachable as JSON over /api/v1. Production DICOM catalog is also published as ORDS /ords/aiv/v1. The SPA is a client, not the source of truth.","cloudNative":"Stateless handlers, env-based config, health endpoint, Postgres via Neon or embedded PGLite, Oracle ATP aivdb via ORDS when ORDS_BASE_URL is set.","headless":"UI never talks to SQL. Knowledge graph, DICOM catalog, cases, and vision interpretation are consumed over HTTP."},"services":[{"id":"identity","name":"Identity","base":"/api/auth","auth":false,"summary":"Better Auth sessions (Google / X). Cookie or preview bearer."},{"id":"knowledge","name":"Knowledge graph","base":"/api/v1/kg","auth":false,"summary":"Sports-injury graph catalog and match (imaging + clinical tests → grade → RTP)."},{"id":"imaging","name":"Imaging","base":"/api/v1/imaging","auth":true,"summary":"Vision interpretation of X-ray / US / CT / MRI, then graph match."},{"id":"dicom","name":"DICOM","base":"/api/v1/studies","auth":false,"summary":"Patient / Study / Series / Instance catalog. Pixels stay on Drive. Production reads aivdb via ORDS."},{"id":"cases","name":"Cases","base":"/api/v1/cases","auth":true,"summary":"Per-user saved matches. Isolated by session user id."}]}