def METHOD_NAME(self, columns):
    if not columns:
        raise serializers.ValidationError("Leaderboards require at least 1 column")
    # Make sure all column indexes are unique
    indexes = [column['index'] for column in columns]
    if len(set(indexes)) != len(columns):
        raise serializers.ValidationError("Columns must have unique indexes!")
    # Make sure all column keys are unique
    keys = [column["key"] for column in columns]
    if len(set(keys)) != len(columns):
        raise serializers.ValidationError("Columns must have unique keys!")
    # Validate that column.computation_indexes points to valid columns
    for column in columns:
        if 'computation_indexes' in column and column['computation_indexes']:
            for index in column['computation_indexes'].split(","):
                try:
                    if int(index) not in indexes:
                        raise serializers.ValidationError(
                            f"Column index {index} does not exist in available indexes {indexes}")
                except ValueError:
                    raise serializers.ValidationError(
                        f"Bad value for index, should be an integer but received: {index}.")
    return columns