def downcast_proxy(source_property, target_property):
    """A decorator function for setting up a downcasting proxy, source_property will be used as downcast_field for target_property."""
    
    def store_downcast_proxy(class_reference):
        """Create downcast proxy mapping and add the properties mapping to it."""
        if not hasattr(class_reference, "__deserialize_downcast_proxy_map__"):
            setattr(class_reference, "__deserialize_downcast_proxy_map__", {})
        
        class_reference.__deserialize_downcast_proxy_map__[target_property] = source_property
    
    return store_downcast_proxy