from research import *
s=begin(818,'Make the principal date-state distinctions explicit','Which repeated labels need a role and construction attached?',{},['File18/File51a; C751,C766,C763; independent reviews'])
cards=[
{'date':4114,'state':'MT Actual regular completion in full430 frame'},
{'date':4112,'state':'MT strict regular no+2 comparison in File51a'},
{'date':4106,'state':'MT Rounded regular head'},
{'date':14004,'state':'MT Actual cumulative lower completion'},
{'date':14006,'state':'MT Actual cumulative Moses/Nisan center'},
{'date':14006,'state':'MT Rounded cumulative Moses-line head'},
{'date':4199,'state':'SP native215 Actual regular head'},
{'date':4414,'state':'SP full430 Actual regular comparison head'},
{'date':13401,'state':'derived SP Rounded cumulative Moses-line head'},
{'date':13401,'state':'separate source Actual Aaron/Adam Day4 display member'}]
a=artifact('model/date_state_cards.json',json.dumps(cards,indent=2)+'\n')
finish(s,{'states':a,'examples':{'MT_completion_gap':14004-4114,'MT_strict_actual_gap':14006-4112,'MT_rounded_gap':14006-4106}},'Dates must be read as state-labelled coordinates. The values9890,9894,9900 answer three different declared comparisons; identical14006 or13401 labels do not erase construction differences.','Assemble the complete source-grounded synthesis draft.',{'gaps':[14004-4114,14006-4112,14006-4106]==[9890,9894,9900],'duplicate_labels_retained':len({x['date'] for x in cards})<len(cards)})
