I guess my feeling was that if we have standard data that we think is intrinsic to all CourseKeys (no matter the implementation), then those should be properties of the top level CourseKey interface (so that all subclasses are guaranteed to implement it).