ink.igav.whatmealtodo.getSuggestions
Recipes ranked by how much of them the caller's pantry already covers. The one query that needs both halves of this AppView: a network-wide public index, and one non-public repo. Neither source can answer it alone. Pantry items marked `kind: staple` are asymmetric here and callers should say so to their users: a staple counts towards a recipe that needs it, but never brings one up — candidates are drawn from held ingredients only, so a pantry of nothing but staples answers with nothing.
Details · query
| Kind | query |
|---|---|
| Authority | whatmealtodo.igav.ink |
| Indexed |
Checks
Validunlimited-stringdefs.main.parameters.properties.cursorNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.output.schema.properties.cursorNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Recipes ranked by how much of them the caller's pantry already covers. The one query that needs both halves of this AppView: a network-wide public index, and one non-public repo. Neither source can answer it alone. Pantry items marked `kind: staple` are asymmetric here and callers should say so to their users: a staple counts towards a recipe that needs it, but never brings one up — candidates are drawn from held ingredients only, so a pantry of nothing but staples answers with nothing.",
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"cursor": {
"type": "string"
},
"pantrySize": {
"description": "How many pantry items the ranking was computed against. An empty pantry produces an empty answer for a reason worth stating rather than leaving to look like no recipes matched.",
"minimum": 0,
"type": "integer"
},
"suggestions": {
"items": {
"ref": "ink.igav.whatmealtodo.defs#suggestion",
"type": "ref"
},
"type": "array"
}
},
"required": [
"suggestions"
],
"type": "object"
}
},
"parameters": {
"properties": {
"cursor": {
"type": "string"
},
"limit": {
"default": 25,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"maxMissing": {
"default": 2,
"description": "Drop recipes missing more than this many ingredients. 0 is 'cook now' only.",
"maximum": 10,
"minimum": 0,
"type": "integer"
}
},
"type": "params"
},
"type": "query"
}
},
"id": "ink.igav.whatmealtodo.getSuggestions",
"lexicon": 1
}