public bool GetProperty(RealmPropertyBool property)
 {
     if (PropertiesBool.TryGetValue(property, out var value))
     {
         return(value.Value);
     }
     return(RealmConverter.PropertyDefinitionsBool[property].DefaultValue);
 }
 protected void CopyDicts(RulesetTemplate copyFrom)
 {
     if (copyFrom.Realm.PropertyCountRandomized.HasValue)
     {
         var count = copyFrom.Realm.PropertyCountRandomized.Value;
         var props = TakeRandomProperties(count, copyFrom);
         foreach (var prop in props)
         {
             if (prop is AppliedRealmProperty <bool> a)
             {
                 PropertiesBool.Add((RealmPropertyBool)a.PropertyKey, new AppliedRealmProperty <bool>(a));
             }
             else if (prop is AppliedRealmProperty <int> b)
             {
                 PropertiesInt.Add((RealmPropertyInt)b.PropertyKey, new AppliedRealmProperty <int>(b));
             }
             else if (prop is AppliedRealmProperty <double> c)
             {
                 PropertiesFloat.Add((RealmPropertyFloat)c.PropertyKey, new AppliedRealmProperty <double>(c));
             }
             else if (prop is AppliedRealmProperty <long> d)
             {
                 PropertiesInt64.Add((RealmPropertyInt64)d.PropertyKey, new AppliedRealmProperty <long>(d));
             }
             else if (prop is AppliedRealmProperty <string> e)
             {
                 PropertiesString.Add((RealmPropertyString)e.PropertyKey, new AppliedRealmProperty <string>(e));
             }
         }
     }
     else
     {
         foreach (var item in copyFrom.PropertiesBool)
         {
             PropertiesBool.Add(item.Key, new AppliedRealmProperty <bool>(item.Value));
         }
         foreach (var item in copyFrom.PropertiesFloat)
         {
             PropertiesFloat.Add(item.Key, new AppliedRealmProperty <double>(item.Value));
         }
         foreach (var item in copyFrom.PropertiesInt)
         {
             PropertiesInt.Add(item.Key, new AppliedRealmProperty <int>(item.Value));
         }
         foreach (var item in copyFrom.PropertiesInt64)
         {
             PropertiesInt64.Add(item.Key, new AppliedRealmProperty <long>(item.Value));
         }
         foreach (var item in copyFrom.PropertiesString)
         {
             PropertiesString.Add(item.Key, new AppliedRealmProperty <string>(item.Value));
         }
     }
 }