/// <summary>
 /// Exposes a resource property as a json:api attribute with an explicit name and capabilities.
 /// </summary>
 public AttrAttribute(string publicName, AttrCapabilities capabilities) : this(publicName)
 {
     HasExplicitCapabilities = true;
     Capabilities            = capabilities;
 }
 /// <summary>
 /// Exposes a resource property as a json:api attribute using the configured casing convention and an explicit set of capabilities.
 /// </summary>
 /// <example>
 /// <code>
 /// public class Author : Identifiable
 /// {
 ///     [Attr(AttrCapabilities.AllowFilter | AttrCapabilities.AllowSort)]
 ///     public string Name { get; set; }
 /// }
 /// </code>
 /// </example>
 public AttrAttribute(AttrCapabilities capabilities)
 {
     HasExplicitCapabilities = true;
     Capabilities            = capabilities;
 }