So, to give you some background: I developed the mobile app as a front end to the OpenSprinkler firmware. Afterwards, the interval program came out for the Pi that’s based on the OS firmware.
My web app works with both however as you might have noticed it controls nothing directly. Just relays commands from your phone to the firmware.
With all of that said, I don’t dictate how programs are organized/stored. I actually like Rays system and he also describes why it’s done the way it is in some blog posts (it’s for storage space).
As for the program names, I can’t add that for now and waiting on a firmware upgrade. You have it correct about the duration, it’s per station.
The interval is how often the program is run within the time window. The window is defined as the start and end time (hence why that exists). If the program starts it won’t stop even if it passes the end time.
I am looking into the run-once ad-hoc programs and will hopefully have something out soon.
Hope that makes sense.