from research import *
s=begin(1359,'Adopt the source-bound family map','Does the visual show construction routes rather than numerical resemblance?',{},['prep/Family_Map_Proposal.svg','prep/Family_Map_Review.json','prep/Family_Map_Source_Bindings.json'])
t=(ROOT/'prep/Family_Map_Proposal.svg').read_text()
a=artifact('deliverables/Chronological_Families_Map.svg',t)
r={'adopted_svg':a,'relationship_policy':'Each lane follows retained source inputs through admitted operations into a complete measured family.','inspection':'Root inspected the rendered1600×1630 PNG; all labels fit, four nodes across, six readable lanes.','review':'Independent selection review PASS; no additional source operation introduced.'}
b=artifact('model/family_map_adoption.json',json.dumps(r,indent=2)+'\n')
finish(s,{'map':a,'adoption':b},'The family map displays six constructive routes with readable labels. It makes the shared method visible while retaining each source family.','Adopt the arrow-by-arrow relationship table and caption.',{'svg':t.lstrip().startswith('<svg') or '<svg' in t[:200],'source_binding_exists':(ROOT/'prep/Family_Map_Source_Bindings.json').exists()})
