pub(crate) async fn run(args: EngineArgs) -> Result<(), String>
Runs the engine scenario.
Returns a message if subscribe fails, nothing is received, or the JSON file cannot be written.