public override JsonSchema AsJsonSchema()
 {
     if (TopPart != null)
     {
         JsonSchema returnSchema = TopPart.AsJsonSchema();
         returnSchema.Id(Name);
         returnSchema.Schema("http://json-schema.org/draft-07/schema#");
         foreach (var pair in Definitions)
         {
             returnSchema.Definition(pair.Key, pair.Value.AsJsonSchema());
         }
         return(returnSchema);
     }
     else
     {
         JsonSchema returnSchema = JsonSchema.Empty;
         returnSchema.Id(Name);
         returnSchema.Schema("http://json-schema.org/draft-07/schema#");
         returnSchema.Title(Name);
         returnSchema.Description(Description);
         return(returnSchema);
     }
 }