/// <summary>
        /// Adds a property to the document.
        /// </summary>
        /// <param name="summary">The summary comment, for the XML documentation.</param>
        /// <param name="access">The access level of this property.</param>
        /// <param name="type">The type of this property.</param>
        /// <param name="name">The property name.</param>
        /// <param name="value">An optional property to set to the field.</param>
        public void AddProperty(
            string summary,
            AccessLevel access,
            string type,
            string name,
            string?value = null)
        {
            this.ElementSeporator();

            this.SummaryDoc(summary);

            if (value != null)
            {
                this.AppendLine($"{access.AccessString()} {type} {name} {{ get; set; }} = {value};");
            }
            else
            {
                this.AppendLine($"{access.AccessString()} {type} {name} {{ get; set; }}");
            }
        }