|null) $probe Problems, [] = green, null = nothing to probe. * @return Closure(bool): list */ public static function extra(string $key, string $label, string $labelNothingToProbe, Closure $probe): Closure { return static function (bool $manifestClean) use ($key, $label, $labelNothingToProbe, $probe): array { if (! $manifestClean) { return [new CheckStep($key, [], true, $label)]; } $none = false; $problems = CompatibilityCheck::guarded(static function () use ($probe, &$none): array { $result = $probe(); $none = $result === null; return $result ?? []; }); return [new CheckStep($key, $problems, false, $none ? $labelNothingToProbe : $label)]; }; } }