Puzzle Space

I wonder what the space of problems that we consider puzzles is like.  I mean how big is it?  What characteristics in general do they have?  Does computational complexity correspond to how difficult the puzzle is?  Puzzles usually require some degree of logic.  So, I’d imagine that puzzles that are most difficult correspond to those that have you solve NP-hard problems without you realizing it.  Can we use a language that describes puzzles in general, like maybe some form of logic, and then we can maybe automatically generate puzzles.  Interesting especially when you consider multi-agent puzzles.