Sourcetype step = | At of int| Mouth of int| Arg of int
Sourcetype path = {script : int;steps : step list;
} Sourcetype piece = | Body of {path : path;spec : Scratch_blocks.spec;x : float;y : float;w : float;h : float;mouths : (float * float) list;
}| Label of {x : float;y : float;text : string;
}| Slot of {path : path;part : Scratch_blocks.part;x : float;y : float;w : float;h : float;text : string;
}
Sourcetype target = | Below of path| Above of int| In_mouth of path * int
Sourceval snap_distance : float