from research import *
s=begin(1285,'Construct the genealogical primitive-register module','How should therawfamilyrows enter thecommonpresentation?',{},['C1284','model/complete_source_row_packet.json','File18'])
d=json.loads((ROOT/'model/complete_source_row_packet.json').read_text());rows=[]
for family,xs in d.items():
 for x in xs:rows.append({'id':family+'.'+x['name'],'family':family,'name':x['name'],'begetting_ledger':x['b_ledger'],'life_ledger':x['L_ledger'],'remaining_calculated':x['r_calculated'],'remaining_status':x['r_status'],'completed_primary_override':x['b_completed_primary'],'life_count_tag':x['L_counting'],'boundary_binding':x['following_Shem_binding']})
a=artifact('model/primitive_genealogy_module.json',json.dumps({'rows':rows,'source':'File18 frozenedition','mode_rule':'Regular selects effectivebirthintervals withboundaryterms; Cumulative selects declaredlifemeasures; calculatedremainingyears donotbecome independentattestation.','main_LXX_Lamech':'182/753;571calculated;777appendix and188nonoperative','SP_Lamech':'53rdcountedyear,52completedunits inprimarybirthchain'},indent=2)+'\n')
finish(s,{'genealogy_module':a,'rows':len(rows)},'Thegenealogyregister retains all58native rows withtheir effective-count overrides andboundarybindings. It suppliesbothmeasurements withoutflattening inclusiveSP counts or treatingcalculated remainders as independentreadings.','Construct thecapmodule withtheinformation neededto connectbirths tolifespanselection.',{'58rows':len(rows)==58,'nativeCainan':sum(x['name']=='Cainan2' for x in rows)==1,'unique_ids':len({x['id'] for x in rows})==58})
