My "quickie" contribution.
For "Band Plan" read "Frequency Allocation".
Visual "band" identification is certainly an attractive feature but there are some good reasons why it is not more widely implemented - unless we limit the scope to just the few dozen broadcast and amateur bands.
If Simon wants to host any user-populated "plan", that's fine. But "complicated" is what you get in real life. And you're playing with fire by fiddling the structure and inventing stuff like "channels" or "sub-bands".
I have messed with "band plans" before and failed to come up with a satisfying answer. My approach was:
(a) based on ITU's region-based frequency allocation table
(b) with option to add areal/national allocation variations
(c) and option to add areal/national allotments to block or perhaps channel level
(d) plus (ideally) extensible to frequency assignments
A data model covering the first two is not overly complex, but data had to be entered manually as no structured electronic format was available. Any comprehensive and workable system would need a database populated and updated easily from electronic source data (ITU and available administrations).
That basic framework is all very well except that:
(e) frequency range and allocation "footnotes" (for ITU regions and areal/national) were desirable, especially for understanding shared allocations
(f) many "service" range allocations deserve individual naming - for example the various broadcast and amateur bands, analogue TV Bands IV and V, etc
(g) arguably, "services" need grouping into (possibly multiple) categories
(h) and an uneasy feeling that many range allocations deserve subdivision into band plans
Ranges from the database (filtered for receiver coverage) are easily translated into GUI ribbons and a text window (perhaps outline-style) but there would surely be a demand for user configuration of options, notably:
(i) filtering by service/region/area/nation (single, multiple)
(j) a display strategy for shared allocations
(k) how to accommodate multiple regions/areas/nations
Life is too short.