I'm creating an interactive museum exhibit that supports 4 simultaneous users, each on 1 of 4 different sides. All of the sides have similar user experiences and share the exact same parameters, but each side has unique values for the parameters such that they behave differently from one another. I'm mocking up the interactions using dashboard elements - each side has about 8-10 different settings/preferences that can be set, and 8-10 different outputs/indicators that display the state of various elements as the user interacts with the exhibit. I'm using MQTT to manage state between the various inputs and outputs on each side. This is all working swimmingly.
Now, this results in quite a few nodes to represent each "side" of the exhibit in the dashboard (an MQTT listener for each setting/state, and a dashboard element to display it). I've got 1 side all wired up and working, and now I need to scale it to support all 4 sides. This would be fairly easily to do programmatically in code, but it's quite a bit of copy and pasting and manual tweaking of topic assignments in each node to create the dashboard groups for the other 3 sides. And if I realize I need to add a setting later on down the road, I have to change it in four different places.
Is there any way to instantiate the 3 other sides programmatically? If not, are there ways I can copy and paste the nodes to different flows but use, say, env vars to bind the topic listeners to the different sides? ("sides/side1/foo", "sides/side2/foo", etc.)? Hoping to make this as flexible as possible for the future.