Shopping lists
shopping_listBuild and edit shopping lists. Reads: list, get. Writes (blocked on read-only accounts): generate (from menu_id, merges amounts), add, categorize, check, remove, share; delete is permanent (ask, then confirm=true). ALWAYS pass exclude (what to leave off) and aisles. Show it grouped by aisle. Returns the list {id, title, sections:[{section, items:[{id, name, amount, checked}]}], remaining, total} or {lists:[...]}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | List id (from list) | |
| new | No | generate: make a 2nd list for a menu that has one (else refreshes it) | |
| items | No | add: "2 lb chicken" or {name, amount, aisle}; categorize: [{id, aisle}] | |
| title | No | List title | |
| action | Yes | What to do | |
| aisles | No | {item name: aisle}; aisle one of Produce|Meat & Seafood|Dairy & Eggs|Bakery|Pantry|Spices & Seasonings|Frozen|Beverages & Alcohol|Other | |
| checked | No | check: true = got it, false = uncheck; default true | |
| confirm | No | Must be true for delete, only after the user agreed | |
| exclude | No | Items to leave off (e.g. pantry staples the user has), or [] | |
| menu_id | No | generate: menu id | |
| item_ids | No | check/remove: item ids from get | |
| visibility | No | share: private or family |