/// <summary>
        /// Create a prototype entry for a certain type
        /// </summary>
        public static Entry Prototype(EntryPrototype type, ICustomSerialization customSerialization)
        {
            Entry encoded;
            var   transformedType = TransformType(type.Prototype.GetType());

            if (transformedType != EntryValueType.Class)
            {
                var value     = type.Prototype.ToString();
                var valueType = type.Prototype.GetType();
                encoded = new Entry
                {
                    DisplayName = valueType.Name,
                    Identifier  = Entry.CreatedIdentifier,
                    Value       = new EntryValue
                    {
                        Current = value,
                        Default = value,
                        Type    = TransformType(valueType)
                    }
                };
            }
            else
            {
                encoded = EncodeObject(type.Prototype, customSerialization);
            }

            return(encoded);
        }
 /// <summary>
 /// Create a prototype entry for a certain type
 /// </summary>
 public static Entry Prototype(EntryPrototype prototype)
 {
     return(Prototype(prototype, Serialization));
 }