Description
Several parts of the codebase use a mix of stopifnot() and rlang::abort() for input validation. While abort() provides clear, user-friendly error messages, stopifnot() produces opaque messages that are harder for users to interpret.
This leads to inconsistent error handling and a less friendly user experience when validation fails.
Example
In helpers-ppc.R:
# Line 70
stopifnot(is.matrix(predictions), is.numeric(predictions))
# Line 85
abort("NAs not allowed in predictions.")