> $nodes * @return list */ public function issues(array $nodes): array { $issues = []; foreach ($nodes as $index => $node) { $config = (array) data_get($node, 'data', []); [$field, $message] = match (data_get($node, 'type')) { NodeType::Generate->value => ['accounts', $this->generateValidator->issueFor($config)], default => [null, null], }; if ($message !== null) { $issues[] = ['node_index' => $index, 'field' => $field, 'message' => $message]; } } return $issues; } /** * The first config issue's message, or null when every node is runnable. * * @param array> $nodes */ public function firstMessage(array $nodes): ?string { return $this->issues($nodes)[0]['message'] ?? null; } }