@@ -0,0 +1,781 @@
+package io.github.ddebree.game.ai.core.move;%0A%0Aimport javax.annotation.Nonnull;%0Aimport java.util.stream.Stream;%0A%0A/**%0A * A factory class that generates all possible move for the player at a particular game state%0A *%0A * @param %3CS%3E The class that represents a game's state%0A * @param %3CP%3E The class that represents a player%0A * @param %3CM%3E The class used to represent a player's move%0A */%0Apublic interface IMoveFactory%3CS, P, M%3E %7B%0A%0A    /**%0A     * Get all the moves that a player could make at the current game state%0A     *%0A     * @param state The current game state%0A     * @param player The player to determine the moves for%0A     * @return A stream of moves that the provided player could perform at this game state%0A     */%0A    @Nonnull%0A    Stream%3CM%3E getMoves(@Nonnull S state, P player);%0A%0A%7D%0A

Add the basic move factory