protected override IValidationError[] IsValidSnapshot(object values, IContextEntry[] context) { if (values is IDictionary <I, S> dictionary) { var errors = dictionary.Keys.Select(key => SubType.Validate(dictionary[key], StateTreeUtils.GetContextForPath(context, $"{key}", SubType))); return(errors.Aggregate(new IValidationError[] { }, (acc, value) => acc.Concat(value).ToArray())); } return(new IValidationError[] { new ValidationError { Context = context, Value = values, Message = $"Value is not an dictionary" } }); }