FK-ordered deep teardown of every run tree a check spawned: for each run in the tree we delete
its steps, then its prompt runs, then the runs child-first. Best-effort — never throws — so a
failed check still cleans up. Deletes are done via entity_object loads so BaseEntity.Delete()
(and its cascade/validation) runs, matching the memory rig's self-clean discipline.
FK-ordered deep teardown of every run tree a check spawned: for each run in the tree we delete its steps, then its prompt runs, then the runs child-first. Best-effort — never throws — so a failed check still cleans up. Deletes are done via entity_object loads so BaseEntity.Delete() (and its cascade/validation) runs, matching the memory rig's self-clean discipline.