Stosowanie adnotacji danych do podrzędnych właściwości modelu widoku w MVC?

Umieszczanie prostych adnotacji danych na właściwościach jest świetne,

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }

Ale powiedzmy, że mam coś takiego:

public class SuperPower
{
   public class Name { get; set; }
}

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }

   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }

Jak zastosować atrybut Required w PrimarySuperPower.Name, pozostawiając go opcjonalnym dla SecondarySuperPower.Name? Najlepiej 1. coś, co wiąże się z walidacją po stronie klienta i 2. bez żadnej specjalnej obsługi, takiej jak sprawdzanie wartości PrimarySuperPower.Name w walidatorze Action / Custom i dodanie błędu ModelState, jeśli jest pusty. Byłoby wspaniale, gdyby było coś takiego:

   [Required(p => p.Name)]
   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }

questionAnswers(4)

yourAnswerToTheQuestion