{ "lexicon": 1, "id": "sh.weaver.notebook.getSuggestedNotebooks", "defs": { "main": { "type": "query", "description": "Get notebook recommendations for the authenticated user based on reading history, likes, and follows.", "parameters": { "type": "params", "properties": { "limit": { "type": "integer", "minimum": 1, "maximum": 50, "default": 20 } } }, "output": { "encoding": "application/json", "schema": { "type": "object", "required": ["notebooks"], "properties": { "notebooks": { "type": "array", "items": { "type": "ref", "ref": "#suggestedNotebook" } } } } } }, "suggestedNotebook": { "type": "object", "required": ["notebook", "reason"], "properties": { "notebook": { "type": "ref", "ref": "sh.weaver.notebook.defs#notebookView" }, "reason": { "type": "ref", "ref": "#suggestionReason" }, "score": { "type": "integer", "description": "Appview-computed relevance score." } } }, "suggestionReason": { "type": "object", "description": "Why this notebook was suggested.", "required": ["type"], "properties": { "type": { "type": "string", "knownValues": [ "similar-tags", "similar-to-liked", "similar-to-read", "followed-author", "popular-in-tag", "trending", "from-list" ] }, "relatedNotebook": { "type": "ref", "ref": "sh.weaver.notebook.defs#notebookView", "description": "If similar-to-X, the notebook it's similar to." }, "relatedAuthor": { "type": "ref", "ref": "sh.weaver.actor.defs#profileViewBasic", "description": "If followed-author, the author." }, "relatedTags": { "type": "array", "items": { "type": "string" }, "description": "Tags that matched." }, "relatedList": { "type": "ref", "ref": "sh.weaver.graph.defs#listView", "description": "If from-list, the list it's from." } } } } }