/// <summary>Gets the derived schemas.</summary>
        /// <param name="schema">The schema.</param>
        /// <param name="rootObject">The root object.</param>
        /// <returns></returns>
        public static IDictionary <JsonSchema4, string> GetDerivedSchemas(this JsonSchema4 schema, object rootObject)
        {
            var visitor = new DerivedSchemaVisitor(schema);

            visitor.VisitAsync(rootObject).GetAwaiter().GetResult();
            return(visitor.DerivedSchemas);
        }
        /// <summary>Gets the derived schemas.</summary>
        /// <param name="schema">The schema.</param>
        /// <param name="rootObject">The root object.</param>
        /// <returns></returns>
        public static IDictionary <JsonSchema, string> GetDerivedSchemas(this JsonSchema schema, object rootObject)
        {
            var visitor = new DerivedSchemaVisitor(schema);

            visitor.Visit(rootObject);
            return(visitor.DerivedSchemas);
        }