<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def compare(self, other, filter_fcn=None):
 """Returns True if properties can be compared in terms of eq. Entity's Fields can be filtered accordingly to 'filter_fcn'. This callable receives field's name as first parameter and field itself as second parameter. It must return True if field's value should be included on comparison and False otherwise. If not provided field's marked as unique will not be compared by default. 'id' and 'name' are examples of unique fields commonly ignored. Check Entities fields for fields marked with 'unique=True' :param other: entity to compare :param filter_fcn: callable :return: boolean """

        if not isinstance(other, type(self)):
            return False
        if filter_fcn is None:
            def filter_unique(_, field):
                """Filter function for unique fields"""
                return not field.unique
            filter_fcn = filter_unique

        return self.to_json_dict(filter_fcn) == other.to_json_dict(filter_fcn)