<?php

declare(strict_types=1);

namespace Fennec\Console;

/**
 * Contrat commun à toute commande console, native ou applicative.
 */
interface CommandInterface
{
    /**
     * Nom de la commande, au format "namespace:action" (ex. "route:cache").
     */
    public function getName(): string;

    public function getDescription(): string;

    /**
     * @param list<string> $arguments Arguments bruts passés après le nom de la commande.
     *
     * @return int Code de retour (0 = succès, non-zéro = échec).
     */
    public function execute(array $arguments): int;
}
