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 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); }