from research import *
s=begin(1294,'Define the operation inventory contract','What makes anoperationusablebetweenfamilies?',{},['C1293','C1282','prep/common_representation_architecture.md'])
contract={'fields':['id','input_object','input_measure','source_domain','action','moving_support','output_object','preserved','lost','composition_conditions','evidence'],'rule':'Anoutputcanfeedanotheroperationonlywhen itsmeasure,count,source role,anchor anddomainmatchthe declarednextinput.','examples':[{'from':'resolvedSPcapcounts','to':'nearestfiverounding','status':'verifiedwithinclusivecountsresolved'},{'from':'SPcapoutput','to':'MTinverseword','status':'noadmittedinterface'},{'from':'MosesMTpathsourcecuts','to':'File52cregularoriginalwords','status':'verifiedallthreewords'}]}
a=artifact('model/common_operation_contract.json',json.dumps(contract,indent=2)+'\n')
finish(s,{'operation_contract':a},'Anoperationrecord willdescribe itsinputmeasure,source support,outputrole andinformationloss alongsideitsformula. Thisgives apositivecompositionrule: followverifiedinterfaces whose retaineddata match.','Register theordinaryrowoperations andtheirintermediatedomainrequirements.',{'fields11':len(contract['fields'])==11,'three_examples':len(contract['examples'])==3})
