# Path: ipuz/exceptions.py
# class IPUZException(Exception):
#     pass
# 
# Path: ipuz/structures/cluenum.py
# def validate_cluenum(field_data):
#     return type(field_data) is int or isinstance(field_data, str)
# 
# Path: ipuz/structures/direction.py
# def validate_direction(direction):
#     splitted = direction.split(':')
#     if len(splitted) > 2:
#         return False
#     direction_name = direction
#     if len(splitted) <= 2:
#         direction_name = splitted[0]
#     return direction_name in (
#         "Across",
#         "Down",
#         "Diagonal",
#         "Diagonal Up",
#         "Diagonal Down Left",
#         "Diagonal Up Left",
#         "Zones",
#         "Clues",
#     )
# 
# Path: ipuz/structures/enumeration.py
# def validate_enumeration(field_data):
#     if not isinstance(field_data, str):
#         return False
#     return True


from ipuz.exceptions import IPUZException
from .cluenum import validate_cluenum
from .direction import validate_direction
from .enumeration import validate_enumeration
                "hints",
                "image",
                "answer",
                "enumeration",
                "references",
                "see",
                "highlight",
                "location",
            ):
                return False
            if key == "number" and not validate_cluenum(value):
                return False
            elif key == "numbers" and not validate_list_of_cluenum(value):
                return False
            elif key == "clue" and not isinstance(value, str):
                return False
            elif key == "hints":
                if not isinstance(value, list):
                    return False
                for element in value:
                    if not isinstance(element, str):
                        return False
            elif key == "image" and not isinstance(value, str):
                return False
            elif key == "answer" and not isinstance(value, str):
                return False
            elif key == "enumeration" and not validate_enumeration(value):
                return False
            elif key == "references" and not validate_list_of_cluenum(value):
                return False

# Path: ipuz/exceptions.py
# class IPUZException(Exception):
#     pass
# 
# Path: ipuz/structures/cluenum.py
# def validate_cluenum(field_data):
#     return type(field_data) is int or isinstance(field_data, str)
# 
# Path: ipuz/structures/direction.py
# def validate_direction(direction):
#     splitted = direction.split(':')
#     if len(splitted) > 2:
#         return False
#     direction_name = direction
#     if len(splitted) <= 2:
#         direction_name = splitted[0]
#     return direction_name in (
#         "Across",
#         "Down",
#         "Diagonal",
#         "Diagonal Up",
#         "Diagonal Down Left",
#         "Diagonal Up Left",
#         "Zones",
#         "Clues",
#     )
# 
# Path: ipuz/structures/enumeration.py
# def validate_enumeration(field_data):
#     if not isinstance(field_data, str):
#         return False
#     return True


# Path: ipuz/structures/clue.py
from ipuz.exceptions import IPUZException
from .cluenum import validate_cluenum
from .direction import validate_direction
from .enumeration import validate_enumeration

                "hints",
                "image",
                "answer",
                "enumeration",
                "references",
                "see",
                "highlight",
                "location",
            ):
                return False
            if key == "number" and not validate_cluenum(value):
                return False
            elif key == "numbers" and not validate_list_of_cluenum(value):
                return False
            elif key == "clue" and not isinstance(value, str):
                return False
            elif key == "hints":
                if not isinstance(value, list):
                    return False
                for element in value:
                    if not isinstance(element, str):
                        return False
            elif key == "image" and not isinstance(value, str):
                return False
            elif key == "answer" and not isinstance(value, str):
                return False
            elif key == "enumeration" and not validate_enumeration(value):
                return False
            elif key == "references" and not validate_list_of_cluenum(value):
                return False

            elif key == "see" and not validate_cluenum(value):