def METHOD_NAME(self, other: State) -> State:
    """
    This operation is NOT commutative, i.e.,:
    a.required_updates_to_reach(b) != b.required_updates_to_reach(a)
    This is supposed to be called on actual state (self).
    I.e., actual.required_updates_to_reach(desired)
    """
    ans = State()
    for kind in AssetType:
        for asset_name, other_asset in other._assets[kind].items():
            if asset_name not in self._assets[kind]:
                continue
            asset = self._assets[kind][asset_name]
            if asset.status in (AssetStatus.TERMINATED, AssetStatus.PENDING):
                continue
            if asset == other_asset:
                # There is no diff - no need to update
                continue
            ans.add_asset(asset=asset.update_from(other_asset))
    return ans