1) If someone wants to allow a query option (like $select), he has to copy code from QueryableAttribute to disable allowing other non-supported query options. May be an extension point like IsSupported(string queryOption) would be easier.
2) _validationSettings is not exposed. So, one cannot call queryOptions.Validate. He has to build one.
2) _validationSettings is not exposed. So, one cannot call queryOptions.Validate. He has to build one.