{"message":"Archivist Elements Renewed API","version":"1.0.0","description":"Rebuilt endpoints from archivist-core","endpoints":{"health":"/health","auth":{"base":"/api/auth","paths":["/register (POST)","/login (POST)","/refresh (POST)","/logout (POST)","/me (GET)"]},"character":{"base":"/api/character","paths":["/","/simple","/detailed"]},"content":{"base":"/api/content","paths":["/tags","/tags/:tag","/custom (POST)","/character","/plothook","/history"]},"utilities":{"base":"/api/utilities","paths":["/gambler/roll/:method"]},"name":{"base":"/api/name","paths":["/conventions","/conventions/:id"]},"simpleLists":{"base":"/api/simple-lists","paths":["GET /","GET /:id","POST /","PUT /:id","DELETE /:id"],"note":"Bearer auth. Rows have name + key + description; `content` JSON has full list doc (ids mirrored). Query: world_id, vault, include_builtin"},"weatherForecasts":{"base":"/api/weather-forecasts","paths":["GET /","GET /:id","POST /","PUT /:id","DELETE /:id"],"note":"Bearer auth. Weather forecast toolkit; content JSON mirrors legacy Android mdl_weather generation."},"species":{"base":"/api/species","paths":["GET /","GET /:id","POST /","PUT /:id","DELETE /:id"],"note":"Bearer auth. Species toolkit with cognition, physical_form, and habitat_behavior sections."},"product":{"base":"/api/product","paths":["GET /community-requests","GET /community-requests/:featureId","GET /community-requests/:featureId/conversations","POST /community-requests","PATCH /community-requests/:featureId","PATCH /community-requests/:featureId/status","POST /community-requests/:featureId/campaign","PATCH /community-requests/:featureId/campaign","POST /community-requests/:featureId/conversations","PUT /community-requests/:featureId/vote","POST /community-requests/:featureId/contributions","GET /roadmap","PUT /roadmap/:featureId"]},"plothook":{"base":"/api/plothook","paths":["/omen","/rumor"]}}}