I figure it was the "just make pvt channel" line of thinking that made them not bother adding "dev" to the product-channel affinity list.
I do have a strong example that is totally unsuitable for such thinking though. It is a "vertical market" kind though - narrow because of how many app developments are affected but very tall because of the extreme difficulty the no-purchase-testing-in-side-loaded-app poses. You see, when doing non-pure B/S development (i.e. another SDK or hybrid), each deployment has to be sent for approval to the Co. I kid you not - even for pvt channel a Roku-human has to sign off on that. Every new build.
Adding Roku billing via such process... i was going to compare it to doing "tonsillectomy via trans-rectal endoscopy" but considering sometimes it takes multiple weeks to get the build back? It's more like
correspondence chess... if instead of chess you still have to perform the tonsil removal surgery. Via US mail. Lots of thinking and strategizing about every move.
Speaking of product-channel affinity, I notice another issue - say a product P is shared between channels A and B, so it lists in both getCatalog() of each. Surprise!
Purchasing P in A is not visible in B. In other words B cannot tell if P has already been purchased - and B will charge the user 2nd time for the same thing! Boy, will that piss off customers...