static public TimeType GetTimeType(this TimeSource item) { if (item.Is <ActiveGameTime>()) { return(TimeType.Active); } if (item.Is <ActualGameTime>()) { return(TimeType.Actual); } throw new UnaccountedBranchException("item", item); }