I think what you have is ok, but I wonder if we want to allow subtypes of Stream, dynamic, or having no type being specified as well...