I think this example could use work. I'm not sure why the fireAlarm event would be fired when the button has been re-armed, and I'm not sure how a Consumer would know anything about sprinkler status. The cancellation payload format and unsubscribe protocol binding need updating to match the protocol binding in the specification text, i.e. DELETE instead of POST and provide the subscription ID in the URL rather than the body (a DELETE request does not usually contain a body).
@benfrancis commented: