A problem replacing action: service with perform-action

Because call-service is deprecated in favor of action, I've been replacing service and ran into trouble with the last one. In particular, this code works fine:

      - type: custom:folder-gallery-card
        title: MasterTest
        folder_sensor: sensor.mastertv_personal
        columns: 3
        aspect_ratio: "16/9"
        tap_action: action
        action:
          service: samsungtv_smart.art_select_image
          target:
            entity_id: media_player.mastertv
          data:
            content_id: "{{content_id}}"
            entity_id: media_player.mastertv

and the tap action in this code does not work:

      - type: custom:folder-gallery-card
        title: MasterTest
        folder_sensor: sensor.mastertv_personal
        columns: 3
        aspect_ratio: "16/9"
        tap_action: action
        action: 
          perform_action: samsungtv_smart.art_select_image
          target:
            entity_id: media_player.mastertv
          data:
            content_id: "{{content_id}}"
            entity_id: media_player.mastertv

I've also tried several variations suggested by Gemini, like

tap_action: 
  action: perform-action
  perform_action: samsungtv_smart.art_select_image
  target:
    entity_id: media_player.mastertv
  data:
    content_id: "{{content_id}}"
    entity_id: media_player.mastertv

I've run out of things to try and am living with one service call. In reading about this, I did learn that one uses underscore _ for the key and hyphen for the action, e.g. "action: perform-action" and then "perform_action:" so that doesn't seem to be the mistake.

I also wonder what was wrong with action: call-service, which seems less redundant than action: perform-action. But my main purpose is to future-proof my dashboards, whatever the future holds.

That's a custom card and it would be up to the cards developer to implement modern script syntax into its configuration options.

Also, call-service isn't deprecated & won't be for the foreseeable future. You can keep using it until the dev of that custom card implements perform_action or the devs at HA change their mind & actually decide to deprecate call-service, whichever comes sooner.