package dev.llan.model;
import dev.llan.model.board.Point;
import dev.llan.model.cards.Card;
import dev.llan.receivers.Receiver;
import java.util.Optional;
public interface Model {
Game initGame();
Game getCurrentGame();
void registerReceiver(Receiver receiver);
void removeReceiver(Receiver receiver);
void tryMoveTo(Point position);
void moveActivePath();
void endTurn();
void waitTurn();
void useCardOn(Point position);
void swapCards(int first, int second);
Optional<Card> selectCard(int cardIndex);
void removeCard(int index);
void equip(int index);
void swapEquipment(int first, int second);
void removeEquipment(int index);
void setHighlighted(Point point, boolean highlighted);
boolean isInRange(Point point);
}