### Elasticsearch Version

8.6.1, also tested on 8.5.3

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

Ubuntu 20.04.5 LTS

### Problem Description

Attempting to update force_merge_index for searchable snapshot actions within phases inside an ILM policy appear to ignore the update.
Version of the policy remains the same if checked after.
A workaround is changing at least one other element of the policy then the changes are accepted and the policy version is updated.

### Steps to Reproduce

```
# test create policy 
PUT /_ilm/policy/test
{
  "policy": {
    "phases": {
      "cold": {
        "min_age": "5d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": true
          },
          "set_priority": {
            "priority": 0
          }
        }
      },
      "warm": {
        "min_age": "3d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "30d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "frozen": {
        "min_age": "25d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": true
          }
        }
      }
    }
  }
}


# check policy
GET /_ilm/policy/test

# update policy to have force merge set to false for cold and frozen phases
PUT /_ilm/policy/test
{
  "policy": {
    "phases": {
      "cold": {
        "min_age": "5d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          },
          "set_priority": {
            "priority": 0
          }
        }
      },
      "warm": {
        "min_age": "3d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "30d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "frozen": {
        "min_age": "25d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          }
        }
      }
    }
  }
}

# check policy - version is still 1 and no changes have taken affect.
GET /_ilm/policy/test


# update policy to have force merge set to false for cold and frozen phases, but also change at least 1 other element of the policy, in this case one of the order values.
PUT /_ilm/policy/test
{
  "policy": {
    "phases": {
      "cold": {
        "min_age": "5d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          },
          "set_priority": {
            "priority": 0
          }
        }
      },
      "warm": {
        "min_age": "3d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "set_priority": {
            "priority": 51
          }
        }
      },
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "30d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "frozen": {
        "min_age": "25d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          }
        }
      }
    }
  }
}

# check policy - version is 2 and changes have taken effect.
GET /_ilm/policy/test

# you could also reset the priority back to what it was if needed
PUT /_ilm/policy/test
{
  "policy": {
    "phases": {
      "cold": {
        "min_age": "5d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          },
          "set_priority": {
            "priority": 0
          }
        }
      },
      "warm": {
        "min_age": "3d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_primary_shard_size": "50gb",
            "max_age": "30d"
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "frozen": {
        "min_age": "25d",
        "actions": {
          "searchable_snapshot": {
            "snapshot_repository": "found-snapshots",
            "force_merge_index": false
          }
        }
      }
    }
  }
}

# check policy - version is 3 and changes have taken effect again.
GET /_ilm/policy/test
```

### Logs (if relevant)

_No response_
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/SearchableSnapshotAction.java
(index, executionState) -> getRestoredIndexPrefix(replaceDataStreamIndexKey) + index
        );
        DeleteStep deleteSourceIndexStep = new DeleteStep(deleteIndexKey, null, client);
        
        
        SwapAliasesAndDeleteSourceIndexStep swapAliasesAndDeleteSourceIndexStep = new SwapAliasesAndDeleteSourceIndexStep(
            swapAliasesKey,
            null,
            client,
            getRestoredIndexPrefix(swapAliasesKey)
        );
        List<Step> steps = new ArrayList<>();
        steps.add(conditionalSkipActionStep);
        steps.add(checkNoWriteIndexStep);
        steps.add(waitForNoFollowersStep);
        steps.add(skipGeneratingSnapshotStep);
        if (forceMergeIndex) {
            steps.add(forceMergeStep);
            steps.add(segmentCountStep);
        }
        steps.add(generateSnapshotNameStep);
        steps.add(cleanupSnapshotStep);
        steps.add(createSnapshotStep);
        steps.add(waitForDataTierStep);
        steps.add(mountSnapshotStep);
        steps.add(waitForGreenIndexHealthStep);
        steps.add(copyMetadataStep);
        steps.add(copySettingsStep);
        steps.add(isDataStreamBranchingStep);
        steps.add(replaceDataStreamBackingIndex);