Set Participant Data action drops custom IVR variables during staging promotion

I’ve spent hours trying to figure out why the Set Participant Data action drops my custom IVR variables when the flow promotes to staging. Here is the config:

flow:
 id: ivr-routing-flow-v3
 actions:
 - type: set-participant-data
 data:
 custom:
 priority_score: '${input.priority}'
 queue_hint: '${input.routing_hint}'
 trigger: on-entry

Terraform deployment gates pass validation cleanly. Direct POST requests to /api/v2/architect/flows yield 200 status codes. Variables populate as expected inside dev workspaces. Pushing to staging via the pipeline changes everything. The node executes yet the custom map remains empty. I verified the API payload structure matches the documentation. The expression syntax looks fine. I even tried hardcoding strings. Same result. The downstream webhook receives null for both keys. Is there a hidden scope limitation when using ${input.*} inside the custom data map? Does the platform expect a specific JSON wrapper for dynamic injection? I need the exact payload format.