Status transitions must follow the Open → Received → Refunded → Closed lifecycle.
Quantities are capped at the RMA items list; totals update as you adjust.
Execution happens server-side (Stripe/PayPal). This cannot be undone.
Admin confirms the amount; the backend enforces the same validation before saving.