Sharing items with a space — no per-item toggle
Turtini's Shared Spaces don't have per-item "share with…" toggles. Instead, every shareable item (recipes, personal events, grocery items, future modules) carries an optional `sharedSpaceId` field. Setting it to a space's id makes the item visible AND editable to everyone in that space. Clearing it makes the item private again.
How you tag items in practice:
• Compose a personal event → the form has a "Space" dropdown. Pick None (private), Household, Family, etc. Defaults to whichever space you most recently used.
• Save a recipe → optional "Space" picker in the recipe form. Most recipes are personal; tag household ones (your shared dinner repertoire) once and they're visible to everyone in the household.
• Add a grocery item → defaults to whichever space the item's category typically lives in (configurable per space).
Why this design:
• **No notification fatigue.** Adding milk to the family grocery list shouldn't send a notification to every family member — it should just appear on their list.
• **No "send-to" friction.** Roommates don't "share" the grocery list every time they add to it. The list IS shared.
• **No copies.** Items aren't duplicated across users. There's one item with one owner, with a sharedSpaceId pointer. Edits ripple instantly because there's nothing to sync.
What every member can do on a space-tagged item:
• See it
• Edit it (rename, change quantity, reschedule, mark done/checked-off)
• Untag it from the space (which moves it back to the original owner's private set)
What only the owner can do:
• Delete the item completely
What only the space owner can do (the person who created the space):
• Add/remove members
• Delete the space (which untags every item, leaving them with their original owners as private)
Cross-space items: a single recipe can carry multiple sharedSpaceId tags by living in an array — useful when "Grandma's lasagna" should be visible to both your immediate-family space and your extended-family space.