> but the attribute is still there for consistency.

Why? We do not have a base to build a consistency on. If we decide to not have tags which have no value, then this will be consistent if we decide not to display any such tag. So where else are we providing tags with no value, but still including it?

I don't know. I think it is easier for 3rd part APIs if they can simply check for existence of tag to know if stream is a derived tag or not. So I would personally rather have that tags are missing if stream is not derived, but if it is, then we require it has a value (and not `None`).

I don't understand your question.