Limitations (v1)
| Item | Status | What to do |
|---|---|---|
| Vue app still on Convex | Live today | New screens follow these playbooks (Core Backend + Middleware Backend), not Convex |
| Middleware Backend payments / refunds / emails / availability / google-rates | Contract only | Implement from specs/middleware/v1 |
| Middleware Backend Mongo booking branch | Do not merge as source of truth | Adapter + Core Backend writes only |
| Core Backend availability / date search | Not in Core Backend | Middleware Backend availability/check |
| Core Backend price range filter | Not in Core Backend | Filter after fetch, or store min_rate_ngn metadata |
| Multi-amenity AND in one Core Backend call | Not in Core Backend | Intersect client-side |
| Tag/category replace (not additive) | Core Backend adds only | Send only new tags; dedicated replace API is optional later |
| Inbound Google ARI inventory write | Stub / unsafe | Keep ACK-only until signed |
| Guest manage-booking without account | Legacy Convex | v1 prefers logged-in Core Backend list |
| Other verticals | Out of v1 | Food, cars, events, rides → later version |
| Apartment as its own Core Backend table | Do not add | property + property_category=apartment |
| AI price-match scrapers / Zoho | Out of v1 | Legacy only |
| JWT ~30 minutes | Core Backend | Use refresh token |
When live explorers add a route, run prompts/iterate-docs.md and prefer Middleware Backend if it now owns the job.