Fetch the schema on-demand when a field that isn't valid for a given type is encountered. Further enhancement to #592.