submit And Await Blocking
Submits spec and synchronously waits for the run to terminate, returning its RunResult. Convenience shorthand for submit(spec, attachments, validate).awaitResultBlocking().
Intended for non-suspend callers — typical fun main() usage and test code that just wants a result without composing with a coroutine context. Coroutine-aware callers should use submit directly so they can observe events and await the result without blocking a thread.
Lifecycle events are not exposed by this method. Pre-run validation warnings, in particular, are emitted only on RunHandle.events and will not be visible if the events flow is not collected. Validation errors still surface through RunResult.Failed (carrying KSLRuntimeError.ConfigurationError with the underlying ValidationResult); callers that need to see warnings as well should switch to submit and collect from the returned handle's RunHandle.events.
The same parameter set as submit: see that method for the attachment and validation contracts.
Caution — runBlocking deadlock hazard. Do not call from inside a coroutine running on the same dispatcher the session uses, or from a UI thread. See RunHandle.awaitResultBlocking for details.