In reply to this post:
@christi3k since all RealAs are ProtoAs, all Optional[RealA]s should be Optional[ProtoA]s, no? Which is why (it seems to me that) RealB conforms to ProtoB, because any value assigned to a RealB's a member is of a type allowed by ProtoB's a member.
¯\_(ツ)_/¯
Yeah, I also (clearly) struggle with this sort of thing.