Minor reordering to make function more logical
Added validator for kind value
Minor correction to PuzzleKind detection
Added validator for invalid or unsupported version
Reorganised tests by PuzzleKind