Exactly-once delivery is available on pull subscriptions only; push and export subscriptions do not support it. The reversed answer is the tempting one because push feels more controlled, but the guarantee depends on the acknowledgement handshake a pull client performs. Including push is therefore wrong, and message ordering is an independent feature that does not unlock exactly-once anywhere.
Official docs