Design – How to isolate the application layer?

I'm trying to build a chess game with c ++, but I do not know how to design the software.
I know that we must program for an interface, so the application must be a set of interfaces (for example, GUI, input / output, …).
But what would be in the "application layer"?