[#1400] validate() now part of interface, returns None if not defined