What is the state diagram associated with Network's NWConnection?

What are the possible transitions within NWConnection.State?

Are cancelled and failed both terminal states? (Implying that I should drop the connection and attempt to set up a new one if I want to reconnect?)

The common flow of setup -> preparing -> ready I've observed, but I wasn't sure how waiting fit in.

What transitions are legal (and managed) by NWConnection?

(mermaid couldn't handle this diagram - but I wrote it out anyway) Are these transitions all valid?

[*] --> setup
cancelled --> [*]
failed --> [*]

setup --> preparing

preparing -> ready
preparing -> cancelled
preparing -> failed

ready -> waiting
ready -> failed
ready -> cancelled

waiting -> cancelled
waiting -> preparing
waiting -> failed