A state transition changes a resource from one condition to another, such as moving an email from draft to sent. Although an update method can change the stored state field, it obscures the difference between editing data and performing an action. section 9.1.1
Treat transitions as distinct actions when changing state carries meaning or side effects. Updating an email's state to sent can surprise users, makes a service-managed field appear client-controlled, and conflates two conceptual operations. section 9.1.1
Marking an email as sent
The tempting design retrieves an email and calls UpdateEmail({id: email.id, state: 'sent'}). A clearer API would expose a dedicated action for sending, keeping ordinary updates for fields such as the subject. section 9.1.1






