public void AddPropertyToBlackboard()
    {
        switch ((BlackboardType)typeEnum.value)
        {
        case BlackboardType.None:
            if (exposedProperties.Count > 0)
            {
                return;
            }

            var noneProperty = new NoneProperty()
            {
                PropertyName = "None", propertyType = BlackboardType.None, PropertyValue = "None"
            };
            exposedProperties.Add(noneProperty);
            break;

        case BlackboardType.Character:
            var propertyName = "New_Character";
            CheckPropertyNameAvailability(ref propertyName);

            var characterProperty = new CharacterProperty(propertyName, "New Value", this);

            blackboard.Add(characterProperty.propertyElement);
            exposedProperties.Add(characterProperty);
            break;

        default:
            Debug.Log("Default should not be hit");
            break;
        }
    }
    public void AddExposedPropertiesFromData(List <ExposedPropertyData> propertiesData)
    {
        foreach (var property in propertiesData)
        {
            switch (property.propertyType)
            {
            case BlackboardType.None:
                var noneProperty = new NoneProperty()
                {
                    PropertyName = "None", propertyType = BlackboardType.None, PropertyValue = "None"
                };
                exposedProperties.Add(noneProperty);
                break;

            case BlackboardType.Character:
                var characterProperty = new CharacterProperty(property.propertyName, property.propertyValue, this);
                exposedProperties.Add(characterProperty);
                break;
            }
        }

        RepaintBlackboardNoCheck();
    }