root = true

#### Core EditorConfig Options ####
# General
[*]
charset = utf-8-bom
indent_style = space
indent_size = 4
tab_width = 4
end_of_line = crlf
insert_final_newline = false
trim_trailing_whitespace = true

# Configuration Files
[.*]
charset = utf-8

# Visual Studio Solution
[*.sln]
indent_style = tab

# Visual Studio Project
[*.{csproj,vbproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2

# XML
[*.{xml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct}]
indent_size = 2

# JSON
[*.{json,json5,webmanifest}]
indent_size = 2

# YAML
[*.{yml,yaml}]
indent_size = 2

# Markdown
[*.md]
trim_trailing_whitespace = false

# Web
[*.{htm,html,js,jsm,ts,tsx,css,sass,scss,less,svg,vue}]
charset = utf-8
indent_size = 2

# Bash
[*.sh]
end_of_line = lf

#### .NET Coding Conventions ####
[*.{cs,csx,cake,vb,vbx}]
# Organize usings
file_header_template = © 2020 Wilhelm Zapiain Rodríguez.\nLicensed under the MIT license. See the LICENSE file in the project root for full license information.
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true

# this. and Me. preferences
dotnet_style_qualification_for_event = true:suggestion
dotnet_style_qualification_for_field = true:suggestion
dotnet_style_qualification_for_method = true:suggestion
dotnet_style_qualification_for_property = true:suggestion

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggestion
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:suggestion
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggestion

# Modifier preferences
dotnet_style_require_accessibility_modifiers = always:suggestion

# Expression-level preferences
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_object_initializer = true:suggestion
dotnet_style_operator_placement_when_wrapping = end_of_line
dotnet_style_prefer_auto_properties = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion
dotnet_style_prefer_conditional_expression_over_return = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion

# Field preferences
dotnet_style_readonly_field = true:suggestion

# Parameter preferences
dotnet_code_quality_unused_parameters = all:suggestion

# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = true:suggestion

#### .NET Naming Styles ####
[*.{cs,csx,cake,vb,vbx}]
# Naming rules
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.constant_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_should_be_pascal_case.symbols = constant
dotnet_naming_rule.constant_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.private_or_internal_field_should_be_camel_case_name.severity = suggestion
dotnet_naming_rule.private_or_internal_field_should_be_camel_case_name.symbols = private_or_internal_field
dotnet_naming_rule.private_or_internal_field_should_be_camel_case_name.style = camel_case_name

dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.symbols = public_or_protected_field
dotnet_naming_rule.public_or_protected_field_should_be_pascal_case.style = pascal_case

# Symbol specifications
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers = 

dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_field.required_modifiers = 

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers = 

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers = 

dotnet_naming_symbols.constant.applicable_kinds = field
dotnet_naming_symbols.constant.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.constant.required_modifiers = const

dotnet_naming_symbols.public_or_protected_field.applicable_kinds = field
dotnet_naming_symbols.public_or_protected_field.applicable_accessibilities = public, protected, protected_internal
dotnet_naming_symbols.public_or_protected_field.required_modifiers = 

dotnet_naming_symbols.constant_fields.applicable_kinds = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.constant_fields.required_modifiers = readonly, static

# Naming styles
dotnet_naming_style.pascal_case.required_prefix = 
dotnet_naming_style.pascal_case.required_suffix = 
dotnet_naming_style.pascal_case.word_separator = 
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix = 
dotnet_naming_style.begins_with_i.word_separator = 
dotnet_naming_style.begins_with_i.capitalization = pascal_case

dotnet_naming_style.camel_case_name.required_prefix = 
dotnet_naming_style.camel_case_name.required_suffix = 
dotnet_naming_style.camel_case_name.word_separator = 
dotnet_naming_style.camel_case_name.capitalization = camel_case

#### C# Coding Conventions ####
[*.{cs,csx,cake}]
# var preferences
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion

# Expression-bodied members
csharp_style_expression_bodied_accessors = false:suggestion
csharp_style_expression_bodied_constructors = false:suggestion
csharp_style_expression_bodied_indexers = true:suggestion
csharp_style_expression_bodied_lambdas = true:suggestion
csharp_style_expression_bodied_local_functions = false:suggestion
csharp_style_expression_bodied_methods = false:suggestion
csharp_style_expression_bodied_operators = false:suggestion
csharp_style_expression_bodied_properties = true:suggestion

# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
csharp_style_prefer_not_pattern = true:suggestion
csharp_style_prefer_pattern_matching = true:suggestion
csharp_style_prefer_switch_expression = true:suggestion

# Null-checking preferences
csharp_style_conditional_delegate_call = true:suggestion

# Modifier preferences
csharp_prefer_static_local_function = true:suggestion
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion

# Code-block preferences
csharp_prefer_braces = true:warning
csharp_prefer_simple_using_statement = true:suggestion

# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_prefer_index_operator = true:suggestion
csharp_style_prefer_range_operator = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion

# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:suggestion

#### C# Formatting Rules ####
[*.{cs,csx,cake}]
# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = false
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = false

#### VB Coding Conventions ####
[*.{vb,vbx}]
# Modifier preferences
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion

#### Analyzers ####
[*.{cs,csx,cake,vb,vbx}]
dotnet_code_quality.api_surface = all

# CA1002: Do not expose generic lists
dotnet_diagnostic.CA1002.severity = suggestion

# CA1003: Use generic event handler instances
dotnet_diagnostic.CA1003.severity = suggestion

# CA1005: Avoid excessive parameters on generic types
dotnet_diagnostic.CA1005.severity = suggestion

# CA1008: Enums should have zero value
dotnet_diagnostic.CA1008.severity = suggestion

# CA1012: Abstract types should not have constructors
dotnet_diagnostic.CA1012.severity = warning

# CA1014: Mark assemblies with CLSCompliant
dotnet_diagnostic.CA1014.severity = none

# CA1016: Mark assemblies with assembly version
dotnet_diagnostic.CA1016.severity = none

# CA1017: Mark assemblies with ComVisible
dotnet_diagnostic.CA1017.severity = none

# CA1019: Define accessors for attribute arguments
dotnet_diagnostic.CA1019.severity = warning

# CA1021: Avoid out parameters
dotnet_diagnostic.CA1021.severity = suggestion

# CA1024: Use properties where appropriate
dotnet_diagnostic.CA1024.severity = suggestion

# CA1027: Mark enums with FlagsAttribute
dotnet_diagnostic.CA1027.severity = suggestion

# CA1033: Interface methods should be callable by child types
dotnet_diagnostic.CA1033.severity = suggestion

# CA1045: Do not pass types by reference
dotnet_diagnostic.CA1045.severity = suggestion

# CA1046: Do not overload equality operator on reference types
dotnet_diagnostic.CA1046.severity = suggestion

# CA1050: Declare types in namespaces
dotnet_diagnostic.CA1050.severity = warning

# CA1060: Move pinvokes to native methods class
dotnet_diagnostic.CA1060.severity = suggestion

# CA1303: Do not pass literals as localized parameters
dotnet_diagnostic.CA1303.severity = none

# CA1307: Specify StringComparison
dotnet_diagnostic.CA1307.severity = warning

# CA1309: Use ordinal stringcomparison
dotnet_diagnostic.CA1309.severity = warning

# CA1310: Specify StringComparison for correctness
dotnet_diagnostic.CA1310.severity = none

# CA1501: Avoid excessive inheritance
dotnet_diagnostic.CA1501.severity = suggestion

# CA1502: Avoid excessive complexity
dotnet_diagnostic.CA1502.severity = suggestion

# CA1505: Avoid unmaintainable code
dotnet_diagnostic.CA1505.severity = suggestion

# CA1506: Avoid excessive class coupling
dotnet_diagnostic.CA1506.severity = suggestion

# CA1508: Avoid dead conditional code
dotnet_diagnostic.CA1508.severity = suggestion

# CA1509: Invalid entry in code metrics rule specification file
dotnet_diagnostic.CA1509.severity = warning

# CA1700: Do not name enum values 'Reserved'
dotnet_diagnostic.CA1700.severity = suggestion

# CA1708: Identifiers should differ by more than case
dotnet_diagnostic.CA1708.severity = warning
dotnet_code_quality.CA1708.api_surface = public

# CA1710: Identifiers should have correct suffix
dotnet_code_quality.CA1710.exclude_indirect_base_types = false

# CA1711: Identifiers should not have incorrect suffix
dotnet_diagnostic.CA1711.severity = suggestion

# CA1725: Parameter names should match base declaration
dotnet_diagnostic.CA1725.severity = suggestion

# CA1802: Use literals where appropriate
dotnet_code_quality.CA1802.required_modifiers = none

# CA1813: Avoid unsealed attributes
dotnet_diagnostic.CA1813.severity = suggestion

# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
dotnet_diagnostic.CA1838.severity = suggestion

# CA2000: Dispose objects before losing scope
dotnet_code_quality.CA2000.dispose_analysis_kind = AllPaths

# CA2007: Consider calling ConfigureAwait on the awaited task
dotnet_code_quality.CA2007.output_kind = DinamicallyLinkedLibrary

# CA2109: Review visible event handlers
dotnet_diagnostic.CA2109.severity = warning

# CA2217: Do not mark enums with FlagsAttribute
dotnet_diagnostic.CA2217.severity = suggestion

# CA2201: Do not raise reserved exception types
dotnet_diagnostic.CA2201.severity = warning

# CA2300: Do not use insecure deserializer BinaryFormatter
dotnet_diagnostic.CA2300.severity = warning

# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
dotnet_diagnostic.CA2301.severity = warning

# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
dotnet_diagnostic.CA2302.severity = warning

# CA2305: Do not use insecure deserializer LosFormatter
dotnet_diagnostic.CA2305.severity = warning

# CA2310: Do not use insecure deserializer NetDataContractSerializer
dotnet_diagnostic.CA2310.severity = warning

# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
dotnet_diagnostic.CA2311.severity = warning

# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
dotnet_diagnostic.CA2312.severity = warning

# CA2315: Do not use insecure deserializer ObjectStateFormatter
dotnet_diagnostic.CA2315.severity = warning

# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
dotnet_diagnostic.CA2321.severity = warning

# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
dotnet_diagnostic.CA2322.severity = warning

# CA2326: Do not use TypeNameHandling values other than None
dotnet_diagnostic.CA2326.severity = warning

# CA2327: Do not use insecure JsonSerializerSettings
dotnet_diagnostic.CA2327.severity = warning

# CA2328: Ensure that JsonSerializerSettings are secure
dotnet_diagnostic.CA2328.severity = warning

# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
dotnet_diagnostic.CA2329.severity = warning

# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
dotnet_diagnostic.CA2330.severity = warning

# CA2350: Do not use DataTable.ReadXml() with untrusted data
dotnet_diagnostic.CA2350.severity = warning

# CA2351: Do not use DataSet.ReadXml() with untrusted data
dotnet_diagnostic.CA2351.severity = warning

# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
dotnet_diagnostic.CA2352.severity = warning

# CA2353: Unsafe DataSet or DataTable in serializable type
dotnet_diagnostic.CA2353.severity = warning

# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
dotnet_diagnostic.CA2354.severity = warning

# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
dotnet_diagnostic.CA2355.severity = warning

# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
dotnet_diagnostic.CA2356.severity = warning

# CA2361: Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data
dotnet_diagnostic.CA2361.severity = warning

# CA2362: Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks
dotnet_diagnostic.CA2362.severity = warning

# CA3001: Review code for SQL injection vulnerabilities
dotnet_diagnostic.CA3001.severity = warning

# CA3002: Review code for XSS vulnerabilities
dotnet_diagnostic.CA3002.severity = warning

# CA3003: Review code for file path injection vulnerabilities
dotnet_diagnostic.CA3003.severity = warning

# CA3004: Review code for information disclosure vulnerabilities
dotnet_diagnostic.CA3004.severity = warning

# CA3005: Review code for LDAP injection vulnerabilities
dotnet_diagnostic.CA3005.severity = warning

# CA3006: Review code for process command injection vulnerabilities
dotnet_diagnostic.CA3006.severity = warning

# CA3007: Review code for open redirect vulnerabilities
dotnet_diagnostic.CA3007.severity = warning

# CA3008: Review code for XPath injection vulnerabilities
dotnet_diagnostic.CA3008.severity = warning

# CA3009: Review code for XML injection vulnerabilities
dotnet_diagnostic.CA3009.severity = warning

# CA3010: Review code for XAML injection vulnerabilities
dotnet_diagnostic.CA3010.severity = warning

# CA3011: Review code for DLL injection vulnerabilities
dotnet_diagnostic.CA3011.severity = warning

# CA3012: Review code for regex injection vulnerabilities
dotnet_diagnostic.CA3012.severity = warning

# CA5358: Review cipher mode usage with cryptography experts
dotnet_diagnostic.CA5358.severity = warning

# CA5361: Do Not Disable SChannel Use of Strong Crypto
dotnet_diagnostic.CA5361.severity = warning

# CA5362: Do Not Refer Self In Serializable Class
dotnet_diagnostic.CA5362.severity = warning

# CA5367: Do Not Serialize Types With Pointer Fields
dotnet_diagnostic.CA5367.severity = warning

# CA5375: Do Not Use Account Shared Access Signature
dotnet_diagnostic.CA5375.severity = warning

# CA5376: Use SharedAccessProtocol HttpsOnly
dotnet_diagnostic.CA5376.severity = warning

# CA5377: Use Container Level Access Policy
dotnet_diagnostic.CA5377.severity = warning

# CA5378: Do not disable ServicePointManagerSecurityProtocols
dotnet_diagnostic.CA5378.severity = warning

# CA5380: Do Not Add Certificates To Root Store
dotnet_diagnostic.CA5380.severity = warning

# CA5381: Ensure Certificates Are Not Added To Root Store
dotnet_diagnostic.CA5381.severity = warning

# CA5382: Use Secure Cookies In ASP.Net Core
dotnet_diagnostic.CA5382.severity = warning

# CA5383: Ensure Use Secure Cookies In ASP.Net Core
dotnet_diagnostic.CA5383.severity = warning

# CA5386: Avoid hardcoding SecurityProtocolType value
dotnet_diagnostic.CA5386.severity = warning

# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
dotnet_diagnostic.CA5387.severity = warning

# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
dotnet_diagnostic.CA5388.severity = warning

# CA5389: Do Not Add Archive Item's Path To The Target File System Path
dotnet_diagnostic.CA5389.severity = warning

# CA5390: Do not hard-code encryption key
dotnet_diagnostic.CA5390.severity = warning

# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
dotnet_diagnostic.CA5391.severity = warning
dotnet_code_quality.CA5391.exclude_aspnet_core_mvc_controllerbase = true

# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
dotnet_diagnostic.CA5392.severity = warning

# CA5393: Do not use unsafe DllImportSearchPath value
dotnet_diagnostic.CA5393.severity = warning
dotnet_code_quality.CA5393.unsafe_DllImportSearchPath_bits = 770

# CA5394: Do not use insecure randomness
dotnet_diagnostic.CA5394.severity = warning

# CA5395: Miss HttpVerb attribute for action methods
dotnet_diagnostic.CA5395.severity = warning

# CA5396: Set HttpOnly to true for HttpCookie
dotnet_diagnostic.CA5396.severity = warning

# CA5398: Avoid hardcoded SslProtocols values
dotnet_diagnostic.CA5398.severity = warning

# CA5399: HttpClients should enable certificate revocation list checks
dotnet_diagnostic.CA5399.severity = warning

# CA5400: Ensure HttpClient certificate revocation list check is not disabled
dotnet_diagnostic.CA5400.severity = warning

# CA5401: Do not use CreateEncryptor with non-default IV
dotnet_diagnostic.CA5401.severity = warning

# CA5402: Use CreateEncryptor with the default IV 
dotnet_diagnostic.CA5402.severity = warning

# CA5403: Do not hard-code certificate
dotnet_diagnostic.CA5403.severity = warning

# CS1591: Missing XML comment for publicly visible type or member
dotnet_diagnostic.CS1591.severity = none

# SA1402: File may only contain a single type
dotnet_diagnostic.SA1402.severity = none

# SA1403: File may only contain a single namespace
dotnet_diagnostic.SA1403.severity = none

# SA1412: Store files as UTF-8 with byte order mark
dotnet_diagnostic.SA1412.severity = warning

# SA1516: Elements should be separated by blank line
dotnet_diagnostic.SA1516.severity = none

# SA1609: Property documentation should have value
dotnet_diagnostic.SA1609.severity = warning