Do we want this and #add_warning to be protected? Seems public interface is #validate, #report, #issues and these are internally used?