storage = $storage; } public function createWorkflow(array $data): Workflow { // TODO: data & workflow validation (trigger existence, graph consistency, etc.) $steps = []; foreach ($data['steps'] as $step) { $steps[] = new Step( $step['id'], $step['type'], $step['key'], $step['next_step_id'] ?? null, $step['args'] ?? [] ); } $workflow = new Workflow($data['name'], $steps); $this->storage->createWorkflow($workflow); return $workflow; } }