None. They are distinct types. There is no way they could be related; types are mutually exclusive, and there is nothing in the spec that changes the output depending on the type, except the boolean check in a choose branch, which compares one type at a time and does not do any fallback comparison, which would be essentially just annoying to implement and wouldn’t gain anything. `type=“entry entry-dictionary” works fine.
Ok. But then: Why do entry and article exist after all? I don’t know about other reference managers, but at least Zotero doesn’t seem to use those types.
Yes, this is an area where CSL practice has diverged from its orgininal vision. I think these were intended as fallbacks, so you define article and that gets applied to all article subtypes unless the specific subtype is defined. That obviously was never implemented and I honestly see little benefit for it (styles tend to handle newspapers and journals completely different, say), so my vote would be to mark these as deprecated in 1.1 and retire them down the road.
To a degree, I actually see the three “fallback” items as fairly useful and meaningful in their own senses. post is widely used for forum posts and social media. article has been discussed as a place for preprints, working papers, and other “posted content” (in the CrossRef definition) in repositories. entry is useful for things like database entries (e.g., PsycTESTS entries or CIA Factbook) that aren’t really dataset or report. My vote would be for retaining and more clearly defining these three.