public static function all(): array
    {
        $class = get_called_class();

        if (isset(self::$items[$class])) {
            return self::$items[$class];
        }

        $constants = static::constants();

        $items = [];

        foreach ($constants as $key => $value) {
            $items[$value] = new $class($key, $value);
        }

        return self::$items[$class] = $items;
    }