public static function reflectionRoutes(App $app, Slim $slim): void{
        $types = $app->getTypes();

        // List all Types with the full route
        $slim->get('/@types', self::jsonResponse(function () use ($types){
            $return = [];
            foreach ($types as $name => $type) {
                $type = $type->getSettings();
                $list = [
                    '@type' => $name,
                    'title' => $type['title'],
                    'description' => $type['description']
                ];
                array_push($return, $list);
            }
            return $return;
        }));

        // Show the public type configuration
        $slim->get('/@types/{type}', self::jsonResponse(function ($req, $res, $args) use ($types){
            if (!isset($types[$args['type']])) {
                return new Error(sprintf("Type '%s' is not defined.", $args['type']));
            }
            $settings = $types[$args['type']]->getSettings();
            $routes = [];
            foreach ($settings['routing'] as $method => $routingList) {
                $routes[$method] = array_map(function($item){
                    return $item['url'];
                }, $routingList);
            }
            return [
                'type' => $args['type'],
                'title' => $settings['title'],
                'description' => $settings['description'],
                'routes' => $routes,
                'data' => (isset($settings['data'])) ? $settings['data'] : [],
            ];
        }));
    }