from research import *
s=begin(1314,'Define a complete-family reconstruction entry','What must areaderknowtofollowafamily frominputs toresults?',{},['C1313','Strategy §§1,6,7'])
entry={'required':['family','source_object','retained_premises','operation_route','complete_result','conserved_or_changed','relation_used','additional_conditions','information_loss','evidence','status'],'standard':'State thewholeboundedfamily first; liststrikingendpointsas consequences ofthatconstruction.','claim_statuses':['newconditionalmechanismorinterface','clarifiedexistingfamily','inheritedcompleteproof','interpretivecomparison'],'example_route':'sourceMT/SP/LXX rows→R/Achangesandcap→Regular/Cumulativefields→resolvedrowrounding'}
a=artifact('model/reconstruction_entry_contract.json',json.dumps(entry,indent=2)+'\n')
finish(s,{'reconstruction_contract':a},'Eachreconstructionentrywillpresent acompleteboundedfamily, itsoperationroute andwhatremainssupplied. Thiskeepspositiveexplanationandsourcecosttogetherinstead ofseparatingthemintoanunreadablewarninglist.','Write theordinarygenealogy reconstructionentry.',{'eleven_fields':len(entry['required'])==11,'four_statuses':len(entry['claim_statuses'])==4})
