{
  "service": "Myelin.StaticData",
  "purpose": "Serves the Myelin screen catalogue (Screen, ScreenCategory, Module, FunctionArea and friends) as JSON.",
  "endpoints": {
    "GET /health": "Liveness. Does not touch the database.",
    "GET /ready": "Opens a database connection and reports the server and catalog it reached.",
    "GET /api/screens": "Flat array, one record per screen with its ancestors denormalised onto it.",
    "GET /api/screens/tree": "FunctionArea > Module > ScreenCategory > Screen, every column of every level.",
    "GET /api/screens.jsonl": "One screen per line. This is the shape to grep.",
    "GET /api/screens.md": "Readable outline of the whole hierarchy.",
    "GET /api/help": "Help articles whole, including the nvarchar(max) bodies kept out of the tree.",
    "GET /api/catalog": "Everything above in one payload."
  },
  "note": "Add ?refresh=true to any endpoint to bypass the in-memory cache. This service writes no files and runs nothing on a schedule; the caller decides when to fetch."
}