sharepoint online – JSON formatting to add hover + button (for action to trigger Flow)?

I have a column that I’ve successfully set up to conditionally display a button with the ExecuteFlow action. It’s working to do everything I need… be visible or hidden, display the correct label, appear in the correct color, and trigger the correct flow.

I would like to use the hover function, though, so that when the button is hidden, it explains to users which prerequisites are missing.

I just don’t know much about JSON, so I’ve tried to add the hover code but nothing appears, and every other example I’ve seen uses it when the elmType is either Div or Span… not Button.

Can you help?

Here’s my working column formatting. It takes care of the button, but does not add any hover functionality.

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "button",
  "txtContent": "=if((($RequestStatus) == 'Requested Proof'), if((($LogProofRequested) == ''), 'Click to Send Request Proof Message', 'Click to Re-Send Request Proof Message'), if((($RequestStatus) == 'Received Proof'), if((($LogProofReceived) == ''), 'Click to Send Received Proof Message', 'Click to Re-Send Received Proof Message'), if((($RequestStatus) == 'Cancelled'), if((($LogCancelled) == ''), 'Click to Send Cancelled Message', 'Click to Re-Send Cancelled Message'), 'No associated message to send')",
  "customRowAction": {
    "action": "executeFlow",
    "actionParams": "=if((($RequestStatus) == 'Requested Proof'),'{"id":"cea60216-5abe-4170-bd1d-e00c6c7d6ddb"}',if((($RequestStatus) == 'Received Proof'), if((($Period) == 'Next Year'), '{"id":"3c8d3211-2cac-49e7-8767-49e986246a03"}', '{"id":"2e5281f3-5378-4a35-8e3d-700b74ea56c4"}'), if((($RequestStatus) == 'Cancelled'),'{"id":"ca089b5b-ed8e-4e7b-9283-c7a41553e45a"}','{"id":"b8643251-b284-4089-ba29-d1223a179bc9"}')))"
  },
  "style": {
    "background-color": "=if((($RequestStatus) == 'Requested Proof'), if((($LogProofRequested) == ''), 'green', 'darkblue'), if((($RequestStatus) == 'Received Proof'), if((($LogProofReceived) == ''), 'green', 'darkblue'), if((($RequestStatus) == 'Cancelled'), if((($LogCancelled) == ''), 'green', 'darkblue'), 'orange')",
    "color": "white",
    "visibility": "=if((($Period) == ''), 'hidden', if((($Recipients) == ''), 'hidden', if(($Period) == 'Next Year', if((($RequestStatus) == 'Received Proof' && ($ApprovedSchool) !='' && ($PreviouslyDesignatedSchool) !=''),'visible',if((($RequestStatus) == 'Requested Proof'),'visible',if((($RequestStatus) == 'Cancelled'),'visible','hidden'))),if(($Period) == 'Current Year', if((($RequestStatus) == 'Received Proof' && ($ApprovedSchool) !='' && (toString(($TransferDate)) !='')),'visible', if((($RequestStatus) == 'Requested Proof'),'visible', if((($RequestStatus) == 'Cancelled'),'visible','hidden'))),'hidden'))))"
  }
}

The text I’d like to display for the hover is in the NotificationSummary field (calculated field), with a beak. I found this as a starting point, but don’t know how to incorporate it:

{
  "elmType": "div",
  "style": {
    "font-size": "12px"
  },
  "txtContent": "@currentField",
  "customCardProps": {
    "formatter": {
      "elmType": "div",
      "txtContent": "($Description)",
      "style": {
        "font-size": "12px",
        "color": "green",
        "padding": "5px"
      }
    },
    "openOnEvent": "hover",
    "directionalHint": "bottomCenter",
    "isBeakVisible": true,
    "beakStyle": {
      "backgroundColor": "white"
    }
  }
}

(from Adding custom hover text using json to a SharePoint list column)