so the kotlin way seems to not use exceptions for things that you want to recover from, and to let all exceptions bubble up and handle them centrally:
https://elizarov.medium.com/kotlin-and-exceptions-8062f589d07 . does that mean for an 3rd party api call conditions like "order expired" are not exceptional and should be handled with a result type or a sealed class instead of throwing an error?