Limitations (v1)
| Item | Status | What to do |
|---|---|---|
| Next app still POSTs Core for property/booking | Drift | Switch to Middleware winners in config/api-routes.ts |
| Live Middleware explorer remount | 2026-10-08 | Explorer lists /api/v1/bookdirect/properties (and rooms/bookings/rates). v1 playbooks still use /api/v1/nellalink/properties until a dedicated iterate. File-manager stays /api/v1/nellalink/file-manager |
| Greenfield rebuild (MelonQ, subdomain engine, email matrix, ARI SSOT) | Draft | docs/next/greenfield. Dates: Roadmap. v1 winners unchanged. Amenities stay the local slug catalog |
| Middleware refunds / emails / google-rates | Not in routes.json | Keep as to-implement |
| Middleware Mongo sample route | Sample only | Do not persist bookings there |
| Core Backend availability / date search | Not in Core | Middleware availability/check |
| Core Backend price range filter | Not in Core | Filter after fetch, or min_rate_ngn |
| Multi-amenity AND in one Core call | Not in Core | tags=a,b is OR. City + one amenity tag, then Middleware ANDs the rest (search indexes) |
| Amenity labels vs slugs | Drift | Frontend local tick list slugs; Middleware persist slugs |
| Marketplace services (cars, events, food, …) | Pages exist | No lodging winner — /next |
| Apartment as its own table | Do not add | property + property_category |
| JWT ~30 minutes | Core | Use refresh token |
| Availability GET is unauthenticated | Live | Return counts only; recommend tighter auth if abused |
When live explorers add a route, run prompts/iterate-docs.md and prefer Middleware Backend if it now owns the job.