convertEachOrNullStrict

inline fun <S : Any, T : Any> Iterable<S?>.convertEachOrNullStrict(path: String, from: String, to: String, convert: (S) -> T?): List<T?>

OnFail.Throw on List<T?> ("optional but validated elements"): broken element → HARD typed MappingException at the indexed path; null element → null pass-through, silent. CancellationException rethrows untouched.