Backend:
- Add update() method + UpdateWorkOrderCommand to WorkOrderService
(DRAFT-only, mutable fields: outputQuantity, dueDate, ext)
- Add PATCH /{id} endpoint + UpdateWorkOrderRequest to WorkOrderController
- Add production.work-order.update permission to metadata YAML
- Location, SalesOrder, PurchaseOrder already had PATCH endpoints
Frontend:
- Add getLocation, updateLocation to inventory client
- Add update methods to salesOrders, purchaseOrders, production client
- Create EditLocationPage (name, active, ext)
- Create EditSalesOrderPage (ext only; DRAFT-only guard)
- Create EditPurchaseOrderPage (ext only; DRAFT-only guard)
- Create EditWorkOrderPage (outputQuantity, dueDate, ext; DRAFT-only guard)
- Wire all four edit routes in App.tsx
- Fix duplicate i18n keys in messages.ts (label.actions, label.fieldKey)