public override bool IsValid(ILogger <IValidatable> logger) { var result = base.IsValid(logger); return(result && BaseTypes.All(t => t.IsValid(logger)) && Properties.All(p => p.IsValid(logger)) && Events.All(e => e.IsValid(logger)) && Functions.All(f => f.IsValid(logger))); }