# v71 — Variant Availability, Batches, Composition & Restaurant Catalog

v71 continues MDS-PRODUCT-001 and connects Product Master to existing operational domains.

Implemented:
- Product availability endpoint per product/variant/warehouse/branch.
- Color/size stock matrix UI.
- Explicit `reservation_supported=false` until a reservation subsystem exists; availability does not pretend to subtract unavailable reservation data.
- Batch/Lot listing per product.
- Product tracking policy: lot, production-date, expiry and default shelf life.
- Existing FEFO foundation remains the allocation engine for expiry-aware stock.
- Bundle component persistence at variant/unit/quantity level.
- Recipe products read the existing Production recipes; no duplicate recipe engine is introduced.
- Restaurant POS presentation metadata for Category/Product/Variant.
- Restaurant Catalog endpoint returns Category → Product image → Variant/Size → effective default price → recipe reference.
- Product Master adds operational tabs for Availability, Batches/Expiry, Composition/Recipe and Restaurant POS preview.

Deferred to v72 Product Intelligence:
- profitability
- price history visualization
- promotion lift
- sales/cost/margin trends
- stockout overlays
- best/worst product reports
- Product Performance Matrix
- Product Health Score

Important:
`quantity_available` currently equals `quantity_on_hand` because reservation accounting is not yet implemented. The API exposes `reservation_supported=false` so consumers cannot mistake this for reservation-aware availability.
