Some proof assistants, like Agda and maybe Coq, allow families of mutually defined types, or nested definitions of types, in which some are inductive and others are coinductive. I have no idea what the type-theoretic introduction/elimination rules should be for such a family, and as shown in this question their behavior can be kind of unexpected. The implementation, I guess, allows general "matches" and "comatches", with a separate "termination/productivity checker"; but this is not a semantic explanation suitable for, say, finding category-theoretic models.
Has anyone written down an inference-rule presentation of a type theory including mutual or nested inductive/coinductive definitions?