They are differentiated by difficulty, aka the number of mates you need to win. It's a simple CSV file where I have listed each level with it's mate count. If I later on want to add a harder difficulty, I can easily add another column with a higher difficulty.
They don't have different themes, I just look for mates. The reason for that is I myself only understand mate puzzles. The other types just let you do x moves and you have to end in the best possible position. That's something for people who can play chess on a decent level.