package thb.jeanluc.adventure.command;

import thb.jeanluc.adventure.game.GameContext;

import java.util.List;

/**
 * A single in-game verb. Implementations are stateless and registered
 * (one or many aliases) in {@link CommandRegistry}.
 */
public interface Command {

    /**
     * Executes the command.
     *
     * @param ctx  active game context
     * @param args parser-tokenised argument list (filler words removed)
     */
    void execute(GameContext ctx, List<String> args);

    /**
     * Short single-line help text shown by the {@code help} command.
     *
     * @return human-readable usage hint
     */
    String help();
}
