            mapping=output['source_to_target'];required={x['name'] for x in data['target_columns'] if x['required']};missing=sorted(required-set(mapping.values()));rows=[{target:r.get(source) for source,target in mapping.items()} for r in data['rows']]
            check('email缺失阻止正式导入',missing==output['unmapped_required']==['email']);check('联系人不冒充邮箱',rows[0].get('contact_name')=='陈舟' and 'email' not in rows[0]);jout('mapping-preview.json',{'mapping':mapping,'missing_required':missing,'rows':rows,'ready':not missing});result={'preview':rows,'missing_required':missing,'imported':False}
