private IEnumerable <NormalizationApiModelProperty> ParseProperties(dynamic model)
        {
            if (!model.ContainsKey("properties"))
            {
                goto NoMoreProperties;
            }

            foreach (var propKv in model.properties)
            {
                var obj = propKv.Value;

                var prop = new NormalizationApiModelProperty
                {
                    Name = propKv.Key
                };

                prop.CopyFrom(SimpleNormalizationApiDataType.ParseFromJObject(obj));

                if (obj.ContainsKey("description"))
                {
                    prop.Description = obj.description;
                }
                if (obj.ContainsKey("key"))
                {
                    prop.IsKey = (bool)obj.key;
                }

                yield return(prop);
            }

NoMoreProperties:
            yield break;
        }
 public static ModelPropertyDefinition Normalize(this NormalizationApiModelProperty This)
 {
     return(new ModelPropertyDefinition(This.AsMetadata())
     {
         Description = This.Description,
         Name = This.Name,
         IsKey = This.IsKey,
         IsRequired = This.IsRequired,
         Type = This.AsDataType()
     });
 }