convertEachOrFail
inline fun <S : Any, T : Any> Iterable<S?>.convertEachOrFail(path: String, from: String, to: String, convert: (S) -> T): List<T>
OnFail.Throw on List<T>: broken element → HARD typed MappingException at the indexed path; null element STILL skips with MappingDegradation.DroppedNullElement — absence stays type-driven under Throw. CancellationException rethrows untouched.