Sometimes such classes would be named as Base- or Core- to indicate that they are to be extended in other implementations, so you’d have
Depending on the language you’re using, you could also use namespaces to distinguish between the two sets of classes. You could have a namespace for the Engine, and other namespaces for specific implementations. For example:
jaylawl.games.engine.Board for the Engine’s Board, and
jaylawl.games.chess.Board for your Chess board.
Personally, I prefer the second option, but that may be language-specific.