When to Use `OneOf<...>` vs `Result`

Result<T> OneOf<T1,...,T4>
Success Single value T One of N types
Failure IEnumerable<IError> Typed failure cases
Pattern match Match(onSuccess, onFailure) Match(case1, case2, ...)
HTTP mapping ToIResult() ToIResult()
Best for Validation pipelines, multiple errors API responses, typed error discrimination