from research import *
s=begin(812,'Freeze the integrated explanatory grammar','Which source data and operations are sufficient for the admitted whole-family reconstructions?',{},['Strategy; C731; C732–811'])
schema={'source_object':['ordered named nodes and edges','source/state labels','measures with units and count conventions','anchor and endpoint roles','admitted subdivisions'],'operations':['select effective begetting or lifespan measure','accumulate or difference along a path','apply finite supported state changes','round source measures and retain residuals','insert/contract weighted path elements','coarsen retained subdivisions','transform designated components','evaluate admitted single-pass reversal'],'claims':['reconstruction of supplied consequences','conditional transfer where source adoption is unverified'],'not_claimed':['unique historical cause','universal scalar chronology conversion','statistical independence of generated nodes']}
a=artifact('model/integrated_grammar.json',json.dumps(schema,indent=2)+'\n')
finish(s,{'grammar':a},'A shared typed path object now covers the admitted families. The compactness lies in reusable operations; source weights, anchors, and choices remain explicit inputs.','Recheck the exact File52c path interface for the final synthesis.',{'object_fields':len(schema['source_object'])==5,'operation_count':len(schema['operations'])==8})
