safeResult

suspend fun <T> safeResult(riskyBlock: suspend () -> T): Result<T>

Runs riskyBlock, wrapping any thrown Throwable into a failed Result instead of letting it propagate — the standard way a use case in mosaic-client/.../domain turns a throwing call into a Result-returning one.