The granular reason behind isValid.
New in this version; use it to tell "incomplete" apart from "invalid" instead of inferring from length.