I'm starting in on a plugin for my A/V processor. It has separate serial command sets for main, zone2, and zone3, which can all operate independently of each other including power on/off. Given this system architecture, I was thinking it would make sense to have separate Indigo devices for each zone.
That said, there are a bunch of system setup commands like input naming that apply to all the zones. I could glop them into the Main device, in which case users would be expected to set up a Main for general use and then have the ability to create devices for zone2 and/or zone3 if they use those features too.
But then if the user deletes the Main device, things would get kind of weird.
One possible solution would be for Indigo to know that the zone2 and zone3 devices were dependencies of the Main device, so deleting the Main would delete the zones too along with actions utilizing the main device, etc.
Does this sound anything like a reasonable plugin architecture, or should I be making a single massive device encompassing all the functions of the processor?