Result.Catch<TException>() / CatchAsync<TException>() — inline typed exception handler in the railway; converts an ExceptionError wrapping TException to any IError; Task<Result<T>> extension also catches direct throws from the source task
Result.WithActivity(Activity?) — enriches an existing OTel Activity span with outcome tags (result.outcome, result.error.type, result.error.message); Tap-style (returns result unchanged), null-safe, no new NuGet dependency