Batch publish menus (full-replace)
Batch publish menus (full-replace)
Publish multiple draft menus to multiple outlets with **full-replace semantics**.
For each target outlet, this endpoint:
1. Soft-deletes ALL existing live menus for the outlet
2. Creates new live menus from the selected drafts (one per draft per outlet)
3. Records publish logs
**Full-replace behavior:** Publishing replaces all existing live menus for the target outlets.
To keep multiple menus on an outlet, publish them together in one request.
One transaction per outlet — if one outlet fails, others may still succeed.

