{"message":"Project API","endpoints":{"POST /:app/projects":"Create project (optional auth)","GET /:app/projects":"List projects (auth required)","GET /:app/projects/:id":"Get project (owner only)","PATCH /:app/projects/:id":"Update project config (owner only)","DELETE /:app/projects/:id":"Delete project (owner only)","POST /:app/projects/:id/claim":"Claim anonymous project (auth required)","POST /:app/projects/:id/image":"Replace project image (owner only)","POST /:app/projects/:id/files/:category/upload-url":"Get upload URL for file (owner only)","GET /:app/projects/:id/files/:category":"List files in category (owner only)","GET /:app/projects/:id/files/:category/:fileId":"Get signed URL for a specific file (owner only)","DELETE /:app/projects/:id/files/:category":"Delete one or more files by ID (owner only, fileIds in body)"},"apps":["plant","curtain","panels","photoshoot"]}