How can I get an MQTT thing/channel's "commandTopic" from a rule?

I have a .thing file like such:

Thing mqtt:topic:mosquitto:bhyve_backyard_lawn "Watering Backyard Lawn" (mqtt:broker:mosquitto) @ "Garden" {
    Channels:
        Type switch: tap "Tap" [ commandTopic="bhyve/device/device_id_xxx/zone/xxx/set", transformationPatternOut="JSONPATH:$.state" ]
}

.item file

Switch BackyardLawnTimer_Tap "Tap" (gWateringTaps) { channel="mqtt:topic:mosquitto:bhyve_backyard_lawn:tap" }

how can I get the commandTopic string from inside a rule?

This may be a type of XY question. What I’d really like to achieve is for the MQTT command to be published as { state: “ON”, duration: xxx } where xxx is taken from another item. But I “believe” that is not possible. So as an alternative, I am writing a rule to publish the command using an MQTT action. However I’d like to get the triggering item’s commandTopic from within the rule. Is this possible?

Triggering Item? No. Channel trigger? Yes.

I have no idea how to define this using .things files (the original developer recommends against .things files so I don’t use them for MQTT). But in PaperUI you can create a Channel on the Broker Thing and there is an option to include the MQTT topic and message on the receivedEvent implicit variable. See MQTT 2.5 Event Bus for an example.