async fn execute( run_id: &str, graph: &DroneGraph, tx: &UnboundedSender<RunEvent>, final_states: &Arc<Mutex<HashMap<String, BlockState>>>, ) -> Result<Value, String>