Because this is a list, its possible for a Thing to have duplicate channels with the same ID. This also means that calling "getChannel(String id)" will only return the first instance of the duplicate channel. Is this by design or should this be considered a bug? I would think this should rather be a Map structure keyed off the Channel's id.
Afair, a List was only chosen internally for keeping the order of channels stable.
Imho, a SortedSet would have been the better choice (together with a Channel.equals() that checks equality of the UID).
Feel free to add an issue, we should indeed at least ensure that no duplicate channel uids end up in the list.