diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..15ea4e4
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,142 @@
+# EditorConfig for ArgusTransfer - states the conventions of CLAUDE.md and .github/CONTRIBUTING.md
+# so that the editor shows them and 'dotnet format --verify-no-changes' and the build enforce them.
+# https://editorconfig.org
+
+root = true
+
+##########################################
+# All files
+##########################################
+
+[*]
+charset = utf-8
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 4
+
+[*.{cs,csproj,props,sln}]
+# pinned to CRLF on every platform by .gitattributes
+end_of_line = crlf
+
+[*.{yml,yaml,json}]
+indent_size = 2
+
+[*.md]
+# two trailing spaces are a line break in Markdown
+trim_trailing_whitespace = false
+
+##########################################
+# C# files
+##########################################
+
+[*.cs]
+indent_size = 4
+tab_width = 4
+
+# --- file header (CLAUDE.md: License header); IDE0073 also checks the file name in the header ---
+file_header_template = ------------------------------------------------------------------------------------------------\n\n\n Copyright (c) 2025-2026 Sam Gerené\n SPDX-License-Identifier: Apache-2.0\n\n\n------------------------------------------------------------------------------------------------
+dotnet_diagnostic.IDE0073.severity = warning
+
+# --- layout: Allman braces ---
+csharp_new_line_before_open_brace = all
+csharp_new_line_before_else = true
+csharp_new_line_before_catch = true
+csharp_new_line_before_finally = true
+dotnet_diagnostic.IDE0055.severity = warning
+
+# --- using directives: inside the namespace, System first, a blank line between groups ---
+csharp_using_directive_placement = inside_namespace:warning
+dotnet_sort_system_directives_first = true
+dotnet_separate_import_directive_groups = true
+dotnet_diagnostic.IDE0065.severity = warning
+
+# --- block-scoped namespaces ---
+csharp_style_namespace_declarations = block_scoped:warning
+dotnet_diagnostic.IDE0160.severity = warning
+
+# --- 'this.' for instance members ---
+dotnet_style_qualification_for_field = true:warning
+dotnet_style_qualification_for_property = true:warning
+dotnet_style_qualification_for_method = true:warning
+dotnet_style_qualification_for_event = true:warning
+dotnet_diagnostic.IDE0009.severity = warning
+
+# --- language keywords instead of framework type names (int, string, not Int32, String) ---
+dotnet_style_predefined_type_for_locals_parameters_members = true:warning
+dotnet_style_predefined_type_for_member_access = true:warning
+dotnet_diagnostic.IDE0049.severity = warning
+
+# --- always braces, also for a single line ---
+csharp_prefer_braces = true:warning
+dotnet_diagnostic.IDE0011.severity = warning
+
+# --- 'var' unless the inferred type is not obvious ---
+csharp_style_var_for_built_in_types = true:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_style_var_elsewhere = true:suggestion
+
+# --- naming; Roslyn applies the first matching rule, so the specific ones come first ---
+dotnet_naming_style.pascal_case_style.capitalization = pascal_case
+dotnet_naming_style.camel_case_style.capitalization = camel_case
+dotnet_naming_style.interface_style.capitalization = pascal_case
+dotnet_naming_style.interface_style.required_prefix = I
+dotnet_naming_style.type_parameter_style.capitalization = pascal_case
+dotnet_naming_style.type_parameter_style.required_prefix = T
+
+dotnet_naming_symbols.private_const_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_const_fields_symbols.applicable_accessibilities = private, private_protected
+dotnet_naming_symbols.private_const_fields_symbols.required_modifiers = const
+dotnet_naming_symbols.private_static_readonly_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_static_readonly_fields_symbols.applicable_accessibilities = private, private_protected
+dotnet_naming_symbols.private_static_readonly_fields_symbols.required_modifiers = static, readonly
+dotnet_naming_symbols.private_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.private_fields_symbols.applicable_accessibilities = private, private_protected
+dotnet_naming_symbols.non_private_fields_symbols.applicable_kinds = field
+dotnet_naming_symbols.non_private_fields_symbols.applicable_accessibilities = public, internal, protected, protected_internal
+dotnet_naming_symbols.interfaces_symbols.applicable_kinds = interface
+dotnet_naming_symbols.interfaces_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
+dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.methods_symbols.applicable_kinds = method, local_function
+dotnet_naming_symbols.methods_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.types_and_members_symbols.applicable_kinds = namespace, class, struct, enum, delegate, property, event
+dotnet_naming_symbols.types_and_members_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.parameters_and_locals_symbols.applicable_kinds = parameter, local
+dotnet_naming_symbols.parameters_and_locals_symbols.applicable_accessibilities = *
+
+dotnet_naming_rule.private_const_fields_are_pascal_case.symbols = private_const_fields_symbols
+dotnet_naming_rule.private_const_fields_are_pascal_case.style = pascal_case_style
+dotnet_naming_rule.private_const_fields_are_pascal_case.severity = warning
+dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.symbols = private_static_readonly_fields_symbols
+dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.style = pascal_case_style
+dotnet_naming_rule.private_static_readonly_fields_are_pascal_case.severity = warning
+dotnet_naming_rule.private_fields_are_camel_case.symbols = private_fields_symbols
+dotnet_naming_rule.private_fields_are_camel_case.style = camel_case_style
+dotnet_naming_rule.private_fields_are_camel_case.severity = warning
+dotnet_naming_rule.non_private_fields_are_pascal_case.symbols = non_private_fields_symbols
+dotnet_naming_rule.non_private_fields_are_pascal_case.style = pascal_case_style
+dotnet_naming_rule.non_private_fields_are_pascal_case.severity = warning
+dotnet_naming_rule.interfaces_are_prefixed.symbols = interfaces_symbols
+dotnet_naming_rule.interfaces_are_prefixed.style = interface_style
+dotnet_naming_rule.interfaces_are_prefixed.severity = warning
+dotnet_naming_rule.type_parameters_are_prefixed.symbols = type_parameters_symbols
+dotnet_naming_rule.type_parameters_are_prefixed.style = type_parameter_style
+dotnet_naming_rule.type_parameters_are_prefixed.severity = warning
+dotnet_naming_rule.methods_are_pascal_case.symbols = methods_symbols
+dotnet_naming_rule.methods_are_pascal_case.style = pascal_case_style
+dotnet_naming_rule.methods_are_pascal_case.severity = warning
+dotnet_naming_rule.types_and_members_are_pascal_case.symbols = types_and_members_symbols
+dotnet_naming_rule.types_and_members_are_pascal_case.style = pascal_case_style
+dotnet_naming_rule.types_and_members_are_pascal_case.severity = warning
+dotnet_naming_rule.parameters_and_locals_are_camel_case.symbols = parameters_and_locals_symbols
+dotnet_naming_rule.parameters_and_locals_are_camel_case.style = camel_case_style
+dotnet_naming_rule.parameters_and_locals_are_camel_case.severity = warning
+dotnet_diagnostic.IDE1006.severity = warning
+
+##########################################
+# Tests - test methods are named Verify_that_{scenario_in_snake_case} (CLAUDE.md: Testing Conventions)
+##########################################
+
+[ArgusTransfer.Tests/**.cs]
+dotnet_naming_rule.methods_are_pascal_case.severity = none
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..466ba17
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,13 @@
+# Line-ending policy, independent of a contributor's git configuration (core.autocrlf).
+# Text files are stored with LF in the repository.
+* text=auto
+
+# C# sources and the project files are CRLF in the working tree on every platform. The .editorconfig
+# states the same (end_of_line = crlf), so 'dotnet format --verify-no-changes' gives the same result
+# on Windows, Linux and macOS.
+*.cs text eol=crlf
+*.csproj text eol=crlf
+*.props text eol=crlf
+*.sln text eol=crlf
+
+*.png binary
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 21b84f8..ee584ca 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -61,5 +61,19 @@ And remember; **A pull-request with tests is a pull-request that's likely to be
- Put `using` statements inside namespace.
- Pay attention to whitespace and extra blank lines
- Absolutely **no** regions
-
-> If you are a ReSharper user, you can make use of our `.DotSettings` file to ensure you cover as many of our style guidelines as possible. There may be some style guidelines which are not covered by the file, so please pay attention to the style of existing code.
+- Start every `.cs` file with the short copyright header shown below, with the `file="..."` attribute equal to the name of the file:
+
+```csharp
+// ------------------------------------------------------------------------------------------------
+//
+//
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
+//
+//
+// ------------------------------------------------------------------------------------------------
+```
+
+The `.editorconfig` in the root of the repository states these guidelines, so Visual Studio, Rider and VS Code show violations while you type. Before you send a pull request, run `dotnet format ArgusTransfer.sln` to apply them (it also adds the header to a new file) and `dotnet build ArgusTransfer.sln -warnaserror` to check them; the build of a pull request runs `dotnet format ArgusTransfer.sln --verify-no-changes`.
+
+> If you are a ReSharper or Rider user, the `.DotSettings` file adds the file header template and the naming rules for ReSharper; ReSharper and Rider read the `.editorconfig` as well. Some style guidelines are not covered by either file (regions, descriptive names), so please pay attention to the style of existing code.
diff --git a/.github/workflows/CodeQuality.yml b/.github/workflows/CodeQuality.yml
index 2c75de2..59ca190 100644
--- a/.github/workflows/CodeQuality.yml
+++ b/.github/workflows/CodeQuality.yml
@@ -47,6 +47,11 @@ jobs:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: dotnet sonarscanner end /d:sonar.token="$SONAR_TOKEN"
+ # Checks the rules of .editorconfig: whitespace, line endings, encoding, using order, the file header and code style.
+ # Last, so that a violation does not stop the analysis above.
+ - name: Verify formatting
+ run: dotnet format ArgusTransfer.sln --no-restore --verify-no-changes
+
# Named pipes behave differently on Windows (unbuffered pipe instances instead of Unix domain sockets), and some
# tests only run there ([Platform("Win")]). Analysis and coverage stay in the Linux job above.
test-windows:
diff --git a/ArgusTransfer.Sample/JsonArgusBodySerializer.cs b/ArgusTransfer.Sample/JsonArgusBodySerializer.cs
index 8a6368c..324c69d 100644
--- a/ArgusTransfer.Sample/JsonArgusBodySerializer.cs
+++ b/ArgusTransfer.Sample/JsonArgusBodySerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Sample/Program.cs b/ArgusTransfer.Sample/Program.cs
index 41b9fbb..f8d580d 100644
--- a/ArgusTransfer.Sample/Program.cs
+++ b/ArgusTransfer.Sample/Program.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Sample/SampleApiKeyAuthenticationHandler.cs b/ArgusTransfer.Sample/SampleApiKeyAuthenticationHandler.cs
index 084e8f5..39b553d 100644
--- a/ArgusTransfer.Sample/SampleApiKeyAuthenticationHandler.cs
+++ b/ArgusTransfer.Sample/SampleApiKeyAuthenticationHandler.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Sample/SampleClientService.cs b/ArgusTransfer.Sample/SampleClientService.cs
index bfba345..6082a9f 100644
--- a/ArgusTransfer.Sample/SampleClientService.cs
+++ b/ArgusTransfer.Sample/SampleClientService.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Sample/SampleItem.cs b/ArgusTransfer.Sample/SampleItem.cs
index 53f8086..aba6283 100644
--- a/ArgusTransfer.Sample/SampleItem.cs
+++ b/ArgusTransfer.Sample/SampleItem.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Sample/SampleItemModule.cs b/ArgusTransfer.Sample/SampleItemModule.cs
index c98ba4c..4152809 100644
--- a/ArgusTransfer.Sample/SampleItemModule.cs
+++ b/ArgusTransfer.Sample/SampleItemModule.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Sample
{
diff --git a/ArgusTransfer.Tests/Authentication/ArgusAuthenticationResultTestFixture.cs b/ArgusTransfer.Tests/Authentication/ArgusAuthenticationResultTestFixture.cs
index 1294f1b..a9df8cc 100644
--- a/ArgusTransfer.Tests/Authentication/ArgusAuthenticationResultTestFixture.cs
+++ b/ArgusTransfer.Tests/Authentication/ArgusAuthenticationResultTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Authentication
{
diff --git a/ArgusTransfer.Tests/Client/ArgusClientTestFixture.cs b/ArgusTransfer.Tests/Client/ArgusClientTestFixture.cs
index d9a0653..efd57bb 100644
--- a/ArgusTransfer.Tests/Client/ArgusClientTestFixture.cs
+++ b/ArgusTransfer.Tests/Client/ArgusClientTestFixture.cs
@@ -1,37 +1,25 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Client
{
using System;
+ using System.Collections.Generic;
using System.IO;
using System.IO.Pipes;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
- using System.Collections.Generic;
-
+ using ArgusTransfer.Client;
using ArgusTransfer.Protocol;
using ArgusTransfer.Serialization;
- using ArgusTransfer.Client;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
diff --git a/ArgusTransfer.Tests/Client/ArgusRetryPolicyTestFixture.cs b/ArgusTransfer.Tests/Client/ArgusRetryPolicyTestFixture.cs
index 37fa865..d1ae9e2 100644
--- a/ArgusTransfer.Tests/Client/ArgusRetryPolicyTestFixture.cs
+++ b/ArgusTransfer.Tests/Client/ArgusRetryPolicyTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Client
{
diff --git a/ArgusTransfer.Tests/Extensions/ArgusTransportExtensionsTestFixture.cs b/ArgusTransfer.Tests/Extensions/ArgusTransportExtensionsTestFixture.cs
index eceef55..2c50424 100644
--- a/ArgusTransfer.Tests/Extensions/ArgusTransportExtensionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Extensions/ArgusTransportExtensionsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Extensions
{
diff --git a/ArgusTransfer.Tests/Extensions/GuidExtensionsTestFixture.cs b/ArgusTransfer.Tests/Extensions/GuidExtensionsTestFixture.cs
index eb6b364..75a5600 100644
--- a/ArgusTransfer.Tests/Extensions/GuidExtensionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Extensions/GuidExtensionsTestFixture.cs
@@ -1,21 +1,11 @@
-// -------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
//
+//
// Copyright (c) 2025-2026 Sam Gerené
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+// SPDX-License-Identifier: Apache-2.0
+//
//
-// ------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Extensions
{
diff --git a/ArgusTransfer.Tests/LicenseHeaderTestFixture.cs b/ArgusTransfer.Tests/LicenseHeaderTestFixture.cs
deleted file mode 100644
index 6833c07..0000000
--- a/ArgusTransfer.Tests/LicenseHeaderTestFixture.cs
+++ /dev/null
@@ -1,338 +0,0 @@
-// -------------------------------------------------------------------------------------------------
-//
-//
-// Copyright (c) 2025-2026 Sam Gerené
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
-
-namespace ArgusTransfer.Tests
-{
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text.RegularExpressions;
-
- using NUnit.Framework;
-
- ///
- /// Suite of tests that verify the license header of every C# source file in the solution
- ///
- [TestFixture]
- public class LicenseHeaderTestFixture
- {
- ///
- /// The number of lines at the start of a file in which the license header is expected
- ///
- private const int HeaderLineCount = 20;
-
- ///
- /// The start of the separator line that opens the license header
- ///
- private const string SeparatorLineStart = "// ---";
-
- ///
- /// The index, in the header returned by , of the line that names the file
- ///
- private const int FileNameLineIndex = 1;
-
- ///
- /// The index, in the header returned by , of the copyright line
- ///
- private const int CopyrightLineIndex = 3;
-
- ///
- /// The index, in the header returned by , of the first line of the warranty disclaimer
- ///
- private const int DisclaimerLineIndex = 11;
-
- ///
- /// The directories, relative to the solution directory, of the projects whose source files are checked
- ///
- private static readonly string[] ProjectDirectories = { "ArgusTransfer", "ArgusTransfer.Tests", "ArgusTransfer.Sample" };
-
- ///
- /// The text of the license header lines that are the same in every file, without the comment prefix and indentation
- ///
- private static readonly string[] LicenseLines =
- {
- "Licensed under the Apache License, Version 2.0 (the \"License\");",
- "you may not use this file except in compliance with the License.",
- "You may obtain a copy of the License at",
- "http://www.apache.org/licenses/LICENSE-2.0",
- "Unless required by applicable law or agreed to in writing, software",
- "distributed under the License is distributed on an \"AS IS\" BASIS,",
- "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
- "See the License for the specific language governing permissions and",
- "limitations under the License.",
- ""
- };
-
- ///
- /// Matches the line of the header that names the file
- ///
- private static readonly Regex FileNameLine = new Regex("^[^\"]*)\">$", RegexOptions.None, TimeSpan.FromSeconds(1));
-
- ///
- /// Matches the copyright line of the header
- ///
- private static readonly Regex CopyrightLine = new Regex(@"^Copyright \(c\) \d{4}(-\d{4})? Sam Gerené$", RegexOptions.None, TimeSpan.FromSeconds(1));
-
- [Test]
- public void Verify_that_every_source_file_has_a_consistent_license_header()
- {
- var solutionDirectory = FindSolutionDirectory();
-
- if (solutionDirectory == null)
- {
- Assert.Ignore("The source files are not available next to the test assembly.");
- }
-
- var sourceFiles = ProjectDirectories
- .SelectMany(project => Directory.EnumerateFiles(Path.Combine(solutionDirectory, project), "*.cs", SearchOption.AllDirectories))
- .Where(file => !IsBuildOutput(solutionDirectory, file))
- .ToList();
-
- var violations = sourceFiles
- .SelectMany(file => GetViolations(Path.GetFileName(file), File.ReadLines(file).Take(HeaderLineCount).ToList())
- .Select(violation => $"{Path.GetRelativePath(solutionDirectory, file)}: {violation}"))
- .ToList();
-
- Assert.That(sourceFiles, Is.Not.Empty);
- Assert.That(violations, Is.Empty);
- }
-
- [Test]
- public void Verify_that_a_correct_header_has_no_violations()
- {
- var header = CreateHeader();
-
- Assert.That(GetViolations("Sample.cs", header), Is.Empty);
- }
-
- [Test]
- public void Verify_that_a_header_naming_another_file_is_a_violation()
- {
- var header = CreateHeader();
- header[FileNameLineIndex] = "// ";
-
- var violations = GetViolations("Sample.cs", header);
-
- Assert.That(violations, Has.Count.EqualTo(1));
- Assert.That(violations[0], Does.Contain("'Other.cs'"));
- }
-
- [TestCase("// ")]
- [TestCase("// ")]
- [TestCase("//")]
- public void Verify_that_a_malformed_or_missing_file_name_line_is_a_violation(string fileNameLine)
- {
- var header = CreateHeader();
- header[FileNameLineIndex] = fileNameLine;
-
- var violations = GetViolations("Sample.cs", header);
-
- Assert.That(violations, Has.Count.EqualTo(1));
- Assert.That(violations[0], Does.Contain("expected one ' { "namespace Sample", "{", "}" };
-
- var violations = GetViolations("Sample.cs", lines);
-
- Assert.That(violations, Has.Count.EqualTo(LicenseLines.Length + 3));
- }
-
- [Test]
- public void Verify_that_an_empty_file_reports_every_violation()
- {
- var violations = GetViolations("Sample.cs", new List());
-
- Assert.That(violations, Has.Count.EqualTo(LicenseLines.Length + 3));
- }
-
- ///
- /// Creates the lines of a correct license header for a file named Sample.cs
- ///
- ///
- /// The lines of the header, which a test can change to create a deviation
- ///
- private static List CreateHeader()
- {
- return new List
- {
- "// -------------------------------------------------------------------------------------------------",
- "// ",
- "//",
- "// Copyright (c) 2025-2026 Sam Gerené",
- "//",
- "// Licensed under the Apache License, Version 2.0 (the \"License\");",
- "// you may not use this file except in compliance with the License.",
- "// You may obtain a copy of the License at",
- "//",
- "// http://www.apache.org/licenses/LICENSE-2.0",
- "//",
- "// Unless required by applicable law or agreed to in writing, software",
- "// distributed under the License is distributed on an \"AS IS\" BASIS,",
- "// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
- "// See the License for the specific language governing permissions and",
- "// limitations under the License.",
- "//",
- "// ",
- "// ------------------------------------------------------------------------------------------------"
- };
- }
-
- ///
- /// Finds the directory that contains the solution file, starting at the directory of the test assembly
- ///
- ///
- /// The path of the solution directory, or null when it cannot be found
- ///
- private static string FindSolutionDirectory()
- {
- var directory = new DirectoryInfo(TestContext.CurrentContext.TestDirectory);
-
- while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ArgusTransfer.sln")))
- {
- directory = directory.Parent;
- }
-
- return directory?.FullName;
- }
-
- ///
- /// Determines whether a file is generated by the build rather than part of the sources
- ///
- ///
- /// The path of the solution directory
- ///
- ///
- /// The path of the file
- ///
- ///
- /// true when the file is in a bin or obj directory; otherwise false
- ///
- private static bool IsBuildOutput(string solutionDirectory, string file)
- {
- var directories = Path.GetRelativePath(solutionDirectory, file).Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
-
- return directories.Any(directory => directory == "bin" || directory == "obj");
- }
-
- ///
- /// Checks the license header of a source file
- ///
- ///
- /// The name of the file, without its directory
- ///
- ///
- /// The first lines of the file, in which the header is expected
- ///
- ///
- /// A description of each deviation from the expected header; empty when the header is correct
- ///
- private static List GetViolations(string fileName, List lines)
- {
- var violations = new List();
-
- if (lines.Count == 0 || !lines[0].StartsWith(SeparatorLineStart, StringComparison.Ordinal))
- {
- violations.Add($"expected the header to start on the first line with '{SeparatorLineStart}'");
- }
-
- var header = lines
- .Where(line => line.StartsWith("//", StringComparison.Ordinal))
- .Select(line => line.Substring(2).Trim())
- .ToList();
-
- var fileNames = header.Select(line => FileNameLine.Match(line)).Where(match => match.Success).Select(match => match.Groups["name"].Value).ToList();
-
- if (fileNames.Count != 1)
- {
- violations.Add("expected one '' line");
- }
- else if (fileNames[0] != fileName)
- {
- violations.Add($"the header names the file '{fileNames[0]}'");
- }
-
- if (!header.Exists(line => CopyrightLine.IsMatch(line)))
- {
- violations.Add("expected a 'Copyright (c) Sam Gerené' line");
- }
-
- violations.AddRange(LicenseLines.Where(line => !header.Contains(line)).Select(line => $"missing header line '{line}'"));
-
- return violations;
- }
- }
-}
diff --git a/ArgusTransfer.Tests/Middleware/ArgusAuthenticationMiddlewareTestFixture.cs b/ArgusTransfer.Tests/Middleware/ArgusAuthenticationMiddlewareTestFixture.cs
index 40d2af6..9209148 100644
--- a/ArgusTransfer.Tests/Middleware/ArgusAuthenticationMiddlewareTestFixture.cs
+++ b/ArgusTransfer.Tests/Middleware/ArgusAuthenticationMiddlewareTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Middleware
{
diff --git a/ArgusTransfer.Tests/Middleware/ArgusExceptionHandlerMiddlewareTestFixture.cs b/ArgusTransfer.Tests/Middleware/ArgusExceptionHandlerMiddlewareTestFixture.cs
index 5fa7f98..a0a1f15 100644
--- a/ArgusTransfer.Tests/Middleware/ArgusExceptionHandlerMiddlewareTestFixture.cs
+++ b/ArgusTransfer.Tests/Middleware/ArgusExceptionHandlerMiddlewareTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Middleware
{
diff --git a/ArgusTransfer.Tests/Middleware/ArgusLoggingMiddlewareTestFixture.cs b/ArgusTransfer.Tests/Middleware/ArgusLoggingMiddlewareTestFixture.cs
index c70ab00..c6e8359 100644
--- a/ArgusTransfer.Tests/Middleware/ArgusLoggingMiddlewareTestFixture.cs
+++ b/ArgusTransfer.Tests/Middleware/ArgusLoggingMiddlewareTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Middleware
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusMessageStreamTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusMessageStreamTestFixture.cs
index 877dade..25e1585 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusMessageStreamTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusMessageStreamTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusMessageTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusMessageTestFixture.cs
index d15f18d..f53725f 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusMessageTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusMessageTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusProblemDetailsTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusProblemDetailsTestFixture.cs
index 32434da..72f630c 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusProblemDetailsTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusProblemDetailsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusProtocolExceptionTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusProtocolExceptionTestFixture.cs
index 6439147..638b244 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusProtocolExceptionTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusProtocolExceptionTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusQueryStringHelperTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusQueryStringHelperTestFixture.cs
index 39a82a0..43b29e1 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusQueryStringHelperTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusQueryStringHelperTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusRequestExceptionTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusRequestExceptionTestFixture.cs
index f19c745..c1fda2a 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusRequestExceptionTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusRequestExceptionTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusRequestTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusRequestTestFixture.cs
index e31dc20..4ebb351 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusRequestTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusRequestTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusResponseTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusResponseTestFixture.cs
index 078ac52..71e6574 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusResponseTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusResponseTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusRouteEncodingTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusRouteEncodingTestFixture.cs
index 445aed5..593873d 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusRouteEncodingTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusRouteEncodingTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Protocol/ArgusStatusCodeExtensionsTestFixture.cs b/ArgusTransfer.Tests/Protocol/ArgusStatusCodeExtensionsTestFixture.cs
index 69feb8f..6972dd8 100644
--- a/ArgusTransfer.Tests/Protocol/ArgusStatusCodeExtensionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Protocol/ArgusStatusCodeExtensionsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Protocol
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusEndpointConventionBuilderTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusEndpointConventionBuilderTestFixture.cs
index 5ca5fef..a4caff0 100644
--- a/ArgusTransfer.Tests/Routing/ArgusEndpointConventionBuilderTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusEndpointConventionBuilderTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusMiddlewarePipelineTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusMiddlewarePipelineTestFixture.cs
index eef1d16..316da82 100644
--- a/ArgusTransfer.Tests/Routing/ArgusMiddlewarePipelineTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusMiddlewarePipelineTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusModuleExtensionsTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusModuleExtensionsTestFixture.cs
index 137699e..5988ac7 100644
--- a/ArgusTransfer.Tests/Routing/ArgusModuleExtensionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusModuleExtensionsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusRouteTemplateParserTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusRouteTemplateParserTestFixture.cs
index d1a6a47..202082f 100644
--- a/ArgusTransfer.Tests/Routing/ArgusRouteTemplateParserTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusRouteTemplateParserTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusRouteTemplateTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusRouteTemplateTestFixture.cs
index 77467cc..9b4344a 100644
--- a/ArgusTransfer.Tests/Routing/ArgusRouteTemplateTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusRouteTemplateTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ArgusRouterTestFixture.cs b/ArgusTransfer.Tests/Routing/ArgusRouterTestFixture.cs
index f5a0a13..7069340 100644
--- a/ArgusTransfer.Tests/Routing/ArgusRouterTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ArgusRouterTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Routing/ShortGuidRouteConstraintTestFixture.cs b/ArgusTransfer.Tests/Routing/ShortGuidRouteConstraintTestFixture.cs
index ad790a9..9a518f0 100644
--- a/ArgusTransfer.Tests/Routing/ShortGuidRouteConstraintTestFixture.cs
+++ b/ArgusTransfer.Tests/Routing/ShortGuidRouteConstraintTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Routing
{
diff --git a/ArgusTransfer.Tests/Sample/ProgramTestFixture.cs b/ArgusTransfer.Tests/Sample/ProgramTestFixture.cs
index 807472f..c703346 100644
--- a/ArgusTransfer.Tests/Sample/ProgramTestFixture.cs
+++ b/ArgusTransfer.Tests/Sample/ProgramTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Sample
{
diff --git a/ArgusTransfer.Tests/Sample/SampleClientServiceTestFixture.cs b/ArgusTransfer.Tests/Sample/SampleClientServiceTestFixture.cs
index 400b407..8e3d284 100644
--- a/ArgusTransfer.Tests/Sample/SampleClientServiceTestFixture.cs
+++ b/ArgusTransfer.Tests/Sample/SampleClientServiceTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Sample
{
diff --git a/ArgusTransfer.Tests/Sample/SampleItemModuleTestFixture.cs b/ArgusTransfer.Tests/Sample/SampleItemModuleTestFixture.cs
index 42f5e16..413f11f 100644
--- a/ArgusTransfer.Tests/Sample/SampleItemModuleTestFixture.cs
+++ b/ArgusTransfer.Tests/Sample/SampleItemModuleTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Sample
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusBodySerializerRegistryTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusBodySerializerRegistryTestFixture.cs
index c222b16..0c3fb54 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusBodySerializerRegistryTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusBodySerializerRegistryTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
#pragma warning disable CS8600 // Converting null literal or possible null value to non-nullable type
diff --git a/ArgusTransfer.Tests/Serialization/ArgusChunkedEncodingTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusChunkedEncodingTestFixture.cs
index 446201a..06c8c49 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusChunkedEncodingTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusChunkedEncodingTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusChunkedWriteStreamTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusChunkedWriteStreamTestFixture.cs
index 3b29de5..fc6f2de 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusChunkedWriteStreamTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusChunkedWriteStreamTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusCompressionOptionsTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusCompressionOptionsTestFixture.cs
index f206965..b70240e 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusCompressionOptionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusCompressionOptionsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusCompressionTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusCompressionTestFixture.cs
index 897e2fe..8ced047 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusCompressionTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusCompressionTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusContentEncodingSerializationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusContentEncodingSerializationTestFixture.cs
index d9d3aba..eaf1672 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusContentEncodingSerializationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusContentEncodingSerializationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusContentNegotiationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusContentNegotiationTestFixture.cs
index bd53d14..405476f 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusContentNegotiationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusContentNegotiationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusRequestReaderTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusRequestReaderTestFixture.cs
index fb9550d..1ac5421 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusRequestReaderTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusRequestReaderTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusRequestSerializationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusRequestSerializationTestFixture.cs
index 91a18ab..f517ab5 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusRequestSerializationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusRequestSerializationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusRequestStreamSerializationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusRequestStreamSerializationTestFixture.cs
index d28fd22..337e782 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusRequestStreamSerializationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusRequestStreamSerializationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusResponseReaderTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusResponseReaderTestFixture.cs
index 8c83d2c..ffc3e86 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusResponseReaderTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusResponseReaderTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusResponseSerializationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusResponseSerializationTestFixture.cs
index ba726c1..37df29d 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusResponseSerializationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusResponseSerializationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusResponseStreamSerializationTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusResponseStreamSerializationTestFixture.cs
index 38982d6..07bf88a 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusResponseStreamSerializationTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusResponseStreamSerializationTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/ArgusWireReaderTestFixture.cs b/ArgusTransfer.Tests/Serialization/ArgusWireReaderTestFixture.cs
index cbc0bfc..46e9c80 100644
--- a/ArgusTransfer.Tests/Serialization/ArgusWireReaderTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/ArgusWireReaderTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/GZipArgusContentEncodingTestFixture.cs b/ArgusTransfer.Tests/Serialization/GZipArgusContentEncodingTestFixture.cs
index 8cb66e9..f533e23 100644
--- a/ArgusTransfer.Tests/Serialization/GZipArgusContentEncodingTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/GZipArgusContentEncodingTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/PlainTextArgusBodySerializerTestFixture.cs b/ArgusTransfer.Tests/Serialization/PlainTextArgusBodySerializerTestFixture.cs
index 5164510..d04de57 100644
--- a/ArgusTransfer.Tests/Serialization/PlainTextArgusBodySerializerTestFixture.cs
+++ b/ArgusTransfer.Tests/Serialization/PlainTextArgusBodySerializerTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Serialization/TaggingBodySerializer.cs b/ArgusTransfer.Tests/Serialization/TaggingBodySerializer.cs
index 0ef264a..ef37ca1 100644
--- a/ArgusTransfer.Tests/Serialization/TaggingBodySerializer.cs
+++ b/ArgusTransfer.Tests/Serialization/TaggingBodySerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Serialization
{
diff --git a/ArgusTransfer.Tests/Server/ArgusPipeHostBackgroundServiceTestFixture.cs b/ArgusTransfer.Tests/Server/ArgusPipeHostBackgroundServiceTestFixture.cs
index d83c05a..5ccdcad 100644
--- a/ArgusTransfer.Tests/Server/ArgusPipeHostBackgroundServiceTestFixture.cs
+++ b/ArgusTransfer.Tests/Server/ArgusPipeHostBackgroundServiceTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Transport.Tests.Server
{
diff --git a/ArgusTransfer.Tests/Server/ArgusPipeHostOptionsTestFixture.cs b/ArgusTransfer.Tests/Server/ArgusPipeHostOptionsTestFixture.cs
index 89a6993..80e495d 100644
--- a/ArgusTransfer.Tests/Server/ArgusPipeHostOptionsTestFixture.cs
+++ b/ArgusTransfer.Tests/Server/ArgusPipeHostOptionsTestFixture.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Tests.Server
{
diff --git a/ArgusTransfer.sln.DotSettings b/ArgusTransfer.sln.DotSettings
index cf87655..997d5b5 100644
--- a/ArgusTransfer.sln.DotSettings
+++ b/ArgusTransfer.sln.DotSettings
@@ -1,22 +1,12 @@
- -------------------------------------------------------------------------------------------------
+ ------------------------------------------------------------------------------------------------
<copyright file="${File.FileName}">
- Copyright (c) 2025-2026 Sam Gerené
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+ Copyright (c) 2025-2026 Sam Gerené
+ SPDX-License-Identifier: Apache-2.0
</copyright>
- ------------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------------
<Policy><Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"><ElementKinds><Kind Name="FIELD" /><Kind Name="READONLY_FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy>
<Policy><Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"><ElementKinds><Kind Name="FIELD" /></ElementKinds></Descriptor><Policy Inspect="True" WarnAboutPrefixesAndSuffixes="True" Prefix="" Suffix="" Style="aaBb" /></Policy>
True
\ No newline at end of file
diff --git a/ArgusTransfer/Authentication/ArgusAuthenticationEndpointExtensions.cs b/ArgusTransfer/Authentication/ArgusAuthenticationEndpointExtensions.cs
index 275d301..515c30c 100644
--- a/ArgusTransfer/Authentication/ArgusAuthenticationEndpointExtensions.cs
+++ b/ArgusTransfer/Authentication/ArgusAuthenticationEndpointExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Authentication
{
diff --git a/ArgusTransfer/Authentication/ArgusAuthenticationOptions.cs b/ArgusTransfer/Authentication/ArgusAuthenticationOptions.cs
index 02e35f5..7ff8c2c 100644
--- a/ArgusTransfer/Authentication/ArgusAuthenticationOptions.cs
+++ b/ArgusTransfer/Authentication/ArgusAuthenticationOptions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Authentication
{
diff --git a/ArgusTransfer/Authentication/ArgusAuthenticationResult.cs b/ArgusTransfer/Authentication/ArgusAuthenticationResult.cs
index 4ec7ef1..2b05de8 100644
--- a/ArgusTransfer/Authentication/ArgusAuthenticationResult.cs
+++ b/ArgusTransfer/Authentication/ArgusAuthenticationResult.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Authentication
{
diff --git a/ArgusTransfer/Authentication/ArgusAuthenticationStatus.cs b/ArgusTransfer/Authentication/ArgusAuthenticationStatus.cs
index 850c1f3..d76e399 100644
--- a/ArgusTransfer/Authentication/ArgusAuthenticationStatus.cs
+++ b/ArgusTransfer/Authentication/ArgusAuthenticationStatus.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Authentication
{
diff --git a/ArgusTransfer/Authentication/IArgusAuthenticationHandler.cs b/ArgusTransfer/Authentication/IArgusAuthenticationHandler.cs
index 484fb09..304d60b 100644
--- a/ArgusTransfer/Authentication/IArgusAuthenticationHandler.cs
+++ b/ArgusTransfer/Authentication/IArgusAuthenticationHandler.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Authentication
{
diff --git a/ArgusTransfer/Client/ArgusClient.cs b/ArgusTransfer/Client/ArgusClient.cs
index 6df223c..318b483 100644
--- a/ArgusTransfer/Client/ArgusClient.cs
+++ b/ArgusTransfer/Client/ArgusClient.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Client
{
diff --git a/ArgusTransfer/Client/ArgusRetryPolicy.cs b/ArgusTransfer/Client/ArgusRetryPolicy.cs
index efafddc..fb242ab 100644
--- a/ArgusTransfer/Client/ArgusRetryPolicy.cs
+++ b/ArgusTransfer/Client/ArgusRetryPolicy.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Client
{
diff --git a/ArgusTransfer/Client/IArgusClient.cs b/ArgusTransfer/Client/IArgusClient.cs
index b9f4da5..5705731 100644
--- a/ArgusTransfer/Client/IArgusClient.cs
+++ b/ArgusTransfer/Client/IArgusClient.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Client
{
diff --git a/ArgusTransfer/Client/RetryBackoffStrategy.cs b/ArgusTransfer/Client/RetryBackoffStrategy.cs
index 4633e27..2f067c7 100644
--- a/ArgusTransfer/Client/RetryBackoffStrategy.cs
+++ b/ArgusTransfer/Client/RetryBackoffStrategy.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Client
{
diff --git a/ArgusTransfer/Extensions/ArgusMiddlewareExtensions.cs b/ArgusTransfer/Extensions/ArgusMiddlewareExtensions.cs
index 9d1e8cd..fd8bdfb 100644
--- a/ArgusTransfer/Extensions/ArgusMiddlewareExtensions.cs
+++ b/ArgusTransfer/Extensions/ArgusMiddlewareExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Extensions
{
diff --git a/ArgusTransfer/Extensions/ArgusSerializationExtensions.cs b/ArgusTransfer/Extensions/ArgusSerializationExtensions.cs
index 191ca95..5f77e8f 100644
--- a/ArgusTransfer/Extensions/ArgusSerializationExtensions.cs
+++ b/ArgusTransfer/Extensions/ArgusSerializationExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Extensions
{
diff --git a/ArgusTransfer/Extensions/ArgusTransportExtensions.cs b/ArgusTransfer/Extensions/ArgusTransportExtensions.cs
index e0eee4d..1505f78 100644
--- a/ArgusTransfer/Extensions/ArgusTransportExtensions.cs
+++ b/ArgusTransfer/Extensions/ArgusTransportExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Extensions
{
diff --git a/ArgusTransfer/Extensions/GuidExtensions.cs b/ArgusTransfer/Extensions/GuidExtensions.cs
index 97d6542..3ed4f34 100644
--- a/ArgusTransfer/Extensions/GuidExtensions.cs
+++ b/ArgusTransfer/Extensions/GuidExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
//
-//
+//
// Copyright (c) 2025-2026 Sam Gerené
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
+// SPDX-License-Identifier: Apache-2.0
+//
//
-// ------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Extensions
{
diff --git a/ArgusTransfer/Middleware/ArgusAuthenticationMiddleware.cs b/ArgusTransfer/Middleware/ArgusAuthenticationMiddleware.cs
index 6bb8c9b..25f2926 100644
--- a/ArgusTransfer/Middleware/ArgusAuthenticationMiddleware.cs
+++ b/ArgusTransfer/Middleware/ArgusAuthenticationMiddleware.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Middleware
{
diff --git a/ArgusTransfer/Middleware/ArgusExceptionHandlerMiddleware.cs b/ArgusTransfer/Middleware/ArgusExceptionHandlerMiddleware.cs
index 6cfc68f..78c5f6d 100644
--- a/ArgusTransfer/Middleware/ArgusExceptionHandlerMiddleware.cs
+++ b/ArgusTransfer/Middleware/ArgusExceptionHandlerMiddleware.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Middleware
{
diff --git a/ArgusTransfer/Middleware/ArgusExceptionHandlerOptions.cs b/ArgusTransfer/Middleware/ArgusExceptionHandlerOptions.cs
index 885122a..f9bbed9 100644
--- a/ArgusTransfer/Middleware/ArgusExceptionHandlerOptions.cs
+++ b/ArgusTransfer/Middleware/ArgusExceptionHandlerOptions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Middleware
{
diff --git a/ArgusTransfer/Middleware/ArgusLoggingMiddleware.cs b/ArgusTransfer/Middleware/ArgusLoggingMiddleware.cs
index d8ed183..a38f338 100644
--- a/ArgusTransfer/Middleware/ArgusLoggingMiddleware.cs
+++ b/ArgusTransfer/Middleware/ArgusLoggingMiddleware.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Middleware
{
diff --git a/ArgusTransfer/Protocol/ArgusHeaderNames.cs b/ArgusTransfer/Protocol/ArgusHeaderNames.cs
index f3dc3ac..1e47d58 100644
--- a/ArgusTransfer/Protocol/ArgusHeaderNames.cs
+++ b/ArgusTransfer/Protocol/ArgusHeaderNames.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusMessage.cs b/ArgusTransfer/Protocol/ArgusMessage.cs
index 460f7d9..5264117 100644
--- a/ArgusTransfer/Protocol/ArgusMessage.cs
+++ b/ArgusTransfer/Protocol/ArgusMessage.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
-//
-// Copyright (c) 2025-2026 Sam Gerené
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
+//
+//
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
+//
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusProblemDetails.cs b/ArgusTransfer/Protocol/ArgusProblemDetails.cs
index e2d54a9..d2836bb 100644
--- a/ArgusTransfer/Protocol/ArgusProblemDetails.cs
+++ b/ArgusTransfer/Protocol/ArgusProblemDetails.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusProtocolException.cs b/ArgusTransfer/Protocol/ArgusProtocolException.cs
index 9da2b3d..ff44730 100644
--- a/ArgusTransfer/Protocol/ArgusProtocolException.cs
+++ b/ArgusTransfer/Protocol/ArgusProtocolException.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusQueryStringHelper.cs b/ArgusTransfer/Protocol/ArgusQueryStringHelper.cs
index 09d9702..6ad8605 100644
--- a/ArgusTransfer/Protocol/ArgusQueryStringHelper.cs
+++ b/ArgusTransfer/Protocol/ArgusQueryStringHelper.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusRequest.cs b/ArgusTransfer/Protocol/ArgusRequest.cs
index ad8fa73..ac71e9e 100644
--- a/ArgusTransfer/Protocol/ArgusRequest.cs
+++ b/ArgusTransfer/Protocol/ArgusRequest.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
-//
-// Copyright (c) 2025-2026 Sam Gerené
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------------------------
+//
+//
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
+//
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
@@ -56,16 +45,16 @@ public class ArgusRequest : ArgusMessage
///
public string Accept
{
- get => Headers.TryGetValue(ArgusHeaderNames.Accept, out var value) ? value : null;
+ get => this.Headers.TryGetValue(ArgusHeaderNames.Accept, out var value) ? value : null;
set
{
if (string.IsNullOrEmpty(value))
{
- Headers.Remove(ArgusHeaderNames.Accept);
+ this.Headers.Remove(ArgusHeaderNames.Accept);
}
else
{
- Headers[ArgusHeaderNames.Accept] = value;
+ this.Headers[ArgusHeaderNames.Accept] = value;
}
}
}
@@ -80,17 +69,17 @@ public string Accept
///
public string Authorization
{
- get => Headers.TryGetValue(ArgusHeaderNames.Authorization, out var value) ? value : null;
+ get => this.Headers.TryGetValue(ArgusHeaderNames.Authorization, out var value) ? value : null;
set
{
if (string.IsNullOrWhiteSpace(value))
{
- Headers.Remove(ArgusHeaderNames.Authorization);
+ this.Headers.Remove(ArgusHeaderNames.Authorization);
return;
}
EnsureNoLineBreaks(value, nameof(value));
- Headers[ArgusHeaderNames.Authorization] = value.Trim();
+ this.Headers[ArgusHeaderNames.Authorization] = value.Trim();
}
}
diff --git a/ArgusTransfer/Protocol/ArgusRequestException.cs b/ArgusTransfer/Protocol/ArgusRequestException.cs
index 715f27a..5360de2 100644
--- a/ArgusTransfer/Protocol/ArgusRequestException.cs
+++ b/ArgusTransfer/Protocol/ArgusRequestException.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusResponse.cs b/ArgusTransfer/Protocol/ArgusResponse.cs
index 9ae068f..2b2da8d 100644
--- a/ArgusTransfer/Protocol/ArgusResponse.cs
+++ b/ArgusTransfer/Protocol/ArgusResponse.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusRouteEncoding.cs b/ArgusTransfer/Protocol/ArgusRouteEncoding.cs
index dfd36f0..190c66d 100644
--- a/ArgusTransfer/Protocol/ArgusRouteEncoding.cs
+++ b/ArgusTransfer/Protocol/ArgusRouteEncoding.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusStatusCode.cs b/ArgusTransfer/Protocol/ArgusStatusCode.cs
index e926adb..010db3a 100644
--- a/ArgusTransfer/Protocol/ArgusStatusCode.cs
+++ b/ArgusTransfer/Protocol/ArgusStatusCode.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusStatusCodeExtensions.cs b/ArgusTransfer/Protocol/ArgusStatusCodeExtensions.cs
index 54d6eea..9424c8d 100644
--- a/ArgusTransfer/Protocol/ArgusStatusCodeExtensions.cs
+++ b/ArgusTransfer/Protocol/ArgusStatusCodeExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Protocol/ArgusVerb.cs b/ArgusTransfer/Protocol/ArgusVerb.cs
index b744834..589fed4 100644
--- a/ArgusTransfer/Protocol/ArgusVerb.cs
+++ b/ArgusTransfer/Protocol/ArgusVerb.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Protocol
{
diff --git a/ArgusTransfer/Routing/ArgusContext.cs b/ArgusTransfer/Routing/ArgusContext.cs
index bab66ed..c6c9192 100644
--- a/ArgusTransfer/Routing/ArgusContext.cs
+++ b/ArgusTransfer/Routing/ArgusContext.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusEndpointConventionBuilder.cs b/ArgusTransfer/Routing/ArgusEndpointConventionBuilder.cs
index 2475b25..c7675de 100644
--- a/ArgusTransfer/Routing/ArgusEndpointConventionBuilder.cs
+++ b/ArgusTransfer/Routing/ArgusEndpointConventionBuilder.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusHandlerDelegate.cs b/ArgusTransfer/Routing/ArgusHandlerDelegate.cs
index 5829ee5..4d129f3 100644
--- a/ArgusTransfer/Routing/ArgusHandlerDelegate.cs
+++ b/ArgusTransfer/Routing/ArgusHandlerDelegate.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusModuleExtensions.cs b/ArgusTransfer/Routing/ArgusModuleExtensions.cs
index f41ddf7..8bd5f56 100644
--- a/ArgusTransfer/Routing/ArgusModuleExtensions.cs
+++ b/ArgusTransfer/Routing/ArgusModuleExtensions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusRequestDelegate.cs b/ArgusTransfer/Routing/ArgusRequestDelegate.cs
index 6480975..e408ee0 100644
--- a/ArgusTransfer/Routing/ArgusRequestDelegate.cs
+++ b/ArgusTransfer/Routing/ArgusRequestDelegate.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusRouteEndpoint.cs b/ArgusTransfer/Routing/ArgusRouteEndpoint.cs
index 9010449..191a8fa 100644
--- a/ArgusTransfer/Routing/ArgusRouteEndpoint.cs
+++ b/ArgusTransfer/Routing/ArgusRouteEndpoint.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusRouteTemplate.cs b/ArgusTransfer/Routing/ArgusRouteTemplate.cs
index 47747da..1dbab8e 100644
--- a/ArgusTransfer/Routing/ArgusRouteTemplate.cs
+++ b/ArgusTransfer/Routing/ArgusRouteTemplate.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusRouteTemplateParser.cs b/ArgusTransfer/Routing/ArgusRouteTemplateParser.cs
index b81ba08..a65b64b 100644
--- a/ArgusTransfer/Routing/ArgusRouteTemplateParser.cs
+++ b/ArgusTransfer/Routing/ArgusRouteTemplateParser.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ArgusRouter.cs b/ArgusTransfer/Routing/ArgusRouter.cs
index 632270f..78b5d2f 100644
--- a/ArgusTransfer/Routing/ArgusRouter.cs
+++ b/ArgusTransfer/Routing/ArgusRouter.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/GuidRouteConstraint.cs b/ArgusTransfer/Routing/GuidRouteConstraint.cs
index c1107db..46bc32b 100644
--- a/ArgusTransfer/Routing/GuidRouteConstraint.cs
+++ b/ArgusTransfer/Routing/GuidRouteConstraint.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/IArgusEndpointConventionBuilder.cs b/ArgusTransfer/Routing/IArgusEndpointConventionBuilder.cs
index aa77c8c..30de065 100644
--- a/ArgusTransfer/Routing/IArgusEndpointConventionBuilder.cs
+++ b/ArgusTransfer/Routing/IArgusEndpointConventionBuilder.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/IArgusMiddleware.cs b/ArgusTransfer/Routing/IArgusMiddleware.cs
index 7c9e92e..0b6c5e4 100644
--- a/ArgusTransfer/Routing/IArgusMiddleware.cs
+++ b/ArgusTransfer/Routing/IArgusMiddleware.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/IArgusModule.cs b/ArgusTransfer/Routing/IArgusModule.cs
index 987a658..7c84339 100644
--- a/ArgusTransfer/Routing/IArgusModule.cs
+++ b/ArgusTransfer/Routing/IArgusModule.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/IArgusRouteBuilder.cs b/ArgusTransfer/Routing/IArgusRouteBuilder.cs
index cf6fa0a..a4374eb 100644
--- a/ArgusTransfer/Routing/IArgusRouteBuilder.cs
+++ b/ArgusTransfer/Routing/IArgusRouteBuilder.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/IArgusRouteConstraint.cs b/ArgusTransfer/Routing/IArgusRouteConstraint.cs
index d70e88c..8b036fa 100644
--- a/ArgusTransfer/Routing/IArgusRouteConstraint.cs
+++ b/ArgusTransfer/Routing/IArgusRouteConstraint.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Routing/ShortGuidRouteConstraint.cs b/ArgusTransfer/Routing/ShortGuidRouteConstraint.cs
index 9e04fd2..20160b0 100644
--- a/ArgusTransfer/Routing/ShortGuidRouteConstraint.cs
+++ b/ArgusTransfer/Routing/ShortGuidRouteConstraint.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Routing
{
diff --git a/ArgusTransfer/Serialization/ArgusBodySerializerRegistry.cs b/ArgusTransfer/Serialization/ArgusBodySerializerRegistry.cs
index 7a897e9..79db0f8 100644
--- a/ArgusTransfer/Serialization/ArgusBodySerializerRegistry.cs
+++ b/ArgusTransfer/Serialization/ArgusBodySerializerRegistry.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusChunkedEncoding.cs b/ArgusTransfer/Serialization/ArgusChunkedEncoding.cs
index 7acf567..46092df 100644
--- a/ArgusTransfer/Serialization/ArgusChunkedEncoding.cs
+++ b/ArgusTransfer/Serialization/ArgusChunkedEncoding.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusChunkedWriteStream.cs b/ArgusTransfer/Serialization/ArgusChunkedWriteStream.cs
index 14f69c1..40dafc2 100644
--- a/ArgusTransfer/Serialization/ArgusChunkedWriteStream.cs
+++ b/ArgusTransfer/Serialization/ArgusChunkedWriteStream.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusCompression.cs b/ArgusTransfer/Serialization/ArgusCompression.cs
index 2fa56b7..d83f99f 100644
--- a/ArgusTransfer/Serialization/ArgusCompression.cs
+++ b/ArgusTransfer/Serialization/ArgusCompression.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusCompressionOptions.cs b/ArgusTransfer/Serialization/ArgusCompressionOptions.cs
index f3a1236..3b322f1 100644
--- a/ArgusTransfer/Serialization/ArgusCompressionOptions.cs
+++ b/ArgusTransfer/Serialization/ArgusCompressionOptions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusContentNegotiation.cs b/ArgusTransfer/Serialization/ArgusContentNegotiation.cs
index 0ec18bb..01fed83 100644
--- a/ArgusTransfer/Serialization/ArgusContentNegotiation.cs
+++ b/ArgusTransfer/Serialization/ArgusContentNegotiation.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusHeaderBudget.cs b/ArgusTransfer/Serialization/ArgusHeaderBudget.cs
index 9f74dfb..0a96fac 100644
--- a/ArgusTransfer/Serialization/ArgusHeaderBudget.cs
+++ b/ArgusTransfer/Serialization/ArgusHeaderBudget.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusLineTooLongException.cs b/ArgusTransfer/Serialization/ArgusLineTooLongException.cs
index b3511b6..c2e77eb 100644
--- a/ArgusTransfer/Serialization/ArgusLineTooLongException.cs
+++ b/ArgusTransfer/Serialization/ArgusLineTooLongException.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusRequestSerializer.cs b/ArgusTransfer/Serialization/ArgusRequestSerializer.cs
index 402d35c..813c013 100644
--- a/ArgusTransfer/Serialization/ArgusRequestSerializer.cs
+++ b/ArgusTransfer/Serialization/ArgusRequestSerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusResponseSerializer.cs b/ArgusTransfer/Serialization/ArgusResponseSerializer.cs
index dd23343..7ad9a9e 100644
--- a/ArgusTransfer/Serialization/ArgusResponseSerializer.cs
+++ b/ArgusTransfer/Serialization/ArgusResponseSerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusTextBodyReader.cs b/ArgusTransfer/Serialization/ArgusTextBodyReader.cs
index ab684a7..e08bf88 100644
--- a/ArgusTransfer/Serialization/ArgusTextBodyReader.cs
+++ b/ArgusTransfer/Serialization/ArgusTextBodyReader.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusTextMessageSource.cs b/ArgusTransfer/Serialization/ArgusTextMessageSource.cs
index 0f25550..e25223e 100644
--- a/ArgusTransfer/Serialization/ArgusTextMessageSource.cs
+++ b/ArgusTransfer/Serialization/ArgusTextMessageSource.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusWireFormat.cs b/ArgusTransfer/Serialization/ArgusWireFormat.cs
index 9772cc4..c42117f 100644
--- a/ArgusTransfer/Serialization/ArgusWireFormat.cs
+++ b/ArgusTransfer/Serialization/ArgusWireFormat.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/ArgusWireReader.cs b/ArgusTransfer/Serialization/ArgusWireReader.cs
index 3ff2a35..6f8920c 100644
--- a/ArgusTransfer/Serialization/ArgusWireReader.cs
+++ b/ArgusTransfer/Serialization/ArgusWireReader.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/GZipArgusContentEncoding.cs b/ArgusTransfer/Serialization/GZipArgusContentEncoding.cs
index ddcd323..e977bd9 100644
--- a/ArgusTransfer/Serialization/GZipArgusContentEncoding.cs
+++ b/ArgusTransfer/Serialization/GZipArgusContentEncoding.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/IArgusBodySerializer.cs b/ArgusTransfer/Serialization/IArgusBodySerializer.cs
index 5c80d08..c72a96e 100644
--- a/ArgusTransfer/Serialization/IArgusBodySerializer.cs
+++ b/ArgusTransfer/Serialization/IArgusBodySerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/IArgusBodySerializerRegistry.cs b/ArgusTransfer/Serialization/IArgusBodySerializerRegistry.cs
index e22a68e..954598a 100644
--- a/ArgusTransfer/Serialization/IArgusBodySerializerRegistry.cs
+++ b/ArgusTransfer/Serialization/IArgusBodySerializerRegistry.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/IArgusContentEncoding.cs b/ArgusTransfer/Serialization/IArgusContentEncoding.cs
index 2c8bb0c..6459aa1 100644
--- a/ArgusTransfer/Serialization/IArgusContentEncoding.cs
+++ b/ArgusTransfer/Serialization/IArgusContentEncoding.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/IArgusMessageSource.cs b/ArgusTransfer/Serialization/IArgusMessageSource.cs
index 53f4fb3..2a1ac45 100644
--- a/ArgusTransfer/Serialization/IArgusMessageSource.cs
+++ b/ArgusTransfer/Serialization/IArgusMessageSource.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Serialization/PlainTextArgusBodySerializer.cs b/ArgusTransfer/Serialization/PlainTextArgusBodySerializer.cs
index 8c6c259..5325920 100644
--- a/ArgusTransfer/Serialization/PlainTextArgusBodySerializer.cs
+++ b/ArgusTransfer/Serialization/PlainTextArgusBodySerializer.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Serialization
{
diff --git a/ArgusTransfer/Server/ArgusPipeHostBackgroundService.cs b/ArgusTransfer/Server/ArgusPipeHostBackgroundService.cs
index 3b3fd32..640b5b4 100644
--- a/ArgusTransfer/Server/ArgusPipeHostBackgroundService.cs
+++ b/ArgusTransfer/Server/ArgusPipeHostBackgroundService.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Server
{
@@ -386,7 +375,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
// Only violations by the request itself (limits, unsupported or corrupt Content-Encoding, a malformed
// request) are answered with 400; their messages describe the client's own input
- logger.LogWarning(ex, "Request rejected: {Message}", ex.Message);
+ this.logger.LogWarning(ex, "Request rejected: {Message}", ex.Message);
try
{
@@ -402,7 +391,7 @@ protected override async Task ExecuteAsync(CancellationToken stoppingToken)
}
catch (Exception ex)
{
- logger.LogError(ex, "Pipe request handling failed.");
+ this.logger.LogError(ex, "Pipe request handling failed.");
}
finally
{
diff --git a/ArgusTransfer/Server/ArgusPipeHostOptions.cs b/ArgusTransfer/Server/ArgusPipeHostOptions.cs
index e7d7c6c..8279053 100644
--- a/ArgusTransfer/Server/ArgusPipeHostOptions.cs
+++ b/ArgusTransfer/Server/ArgusPipeHostOptions.cs
@@ -1,22 +1,11 @@
-// -------------------------------------------------------------------------------------------------
-//
+// ------------------------------------------------------------------------------------------------
+//
//
-// Copyright (c) 2025-2026 Sam Gerené
+// Copyright (c) 2025-2026 Sam Gerené
+// SPDX-License-Identifier: Apache-2.0
//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// ------------------------------------------------------------------------------------------------
+//
+// ------------------------------------------------------------------------------------------------
namespace ArgusTransfer.Server
{
diff --git a/CLAUDE.md b/CLAUDE.md
index e52f75c..dcdd1da 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -29,8 +29,8 @@ After making code changes, follow this verification sequence before considering
1. **Build and inspect warnings**: Run `dotnet build ArgusTransfer.sln`. Inspect the output for all warnings (CSxxxx, CAxxxx, IDExxxx). Fix all warnings before proceeding.
2. **Run tests**: Run `dotnet test ArgusTransfer.sln`. All tests must pass.
-3. **Format check**: Run `dotnet format ArgusTransfer.sln --verify-no-changes`. Fix any formatting violations reported.
-4. **Final strict build**: Run `dotnet build ArgusTransfer.sln -warnaserror` as a final pass. The build must succeed with zero warnings and zero errors.
+3. **Format check**: Run `dotnet format ArgusTransfer.sln --verify-no-changes`. It checks the rules of `.editorconfig`: whitespace, line endings, encoding, the order of `using` directives, the file header and the code-style rules set to `warning`. Run `dotnet format ArgusTransfer.sln` to fix what it reports; the `Build` job in `CodeQuality.yml` runs the same check.
+4. **Final strict build**: Run `dotnet build ArgusTransfer.sln -warnaserror` as a final pass. The build must succeed with zero warnings and zero errors. `Directory.Build.props` sets `EnforceCodeStyleInBuild`, so the build also reports the code-style rules (IDExxxx) of `.editorconfig`.
## Solution Structure
@@ -147,7 +147,8 @@ Authentication: `ArgusAuthenticationMiddleware` calls the singleton `IArgusAuthe
- **LangVersion**: `14.0`
- **Nullable**: `disable` in both `ArgusTransfer` and `ArgusTransfer.Tests`
- **XML doc comments**: required on all public types and members. **Never use `/// `** — always write the full ``, ``, ``, and `` blocks on the implementation, even when they duplicate the interface.
-- **License header**: every `.cs` file starts with the Apache-2.0 copyright block, with `` and `Copyright (c) 2025-2026 Sam Gerené`. `LicenseHeaderTestFixture` checks this, and that the header starts on the first line, for every source file in the three project directories (a new project must be added to its `ProjectDirectories`); the ReSharper template is in `ArgusTransfer.sln.DotSettings`.
+- **Style rules**: `.editorconfig` states the conventions of `.github/CONTRIBUTING.md` (usings inside the namespace, `this.`, braces, block-scoped namespaces, type keywords, naming) as warnings. A new convention that a Roslyn rule can check goes there, not only in this file. `.gitattributes` pins `.cs` and project files to CRLF on every platform.
+- **License header**: every `.cs` file starts with the short copyright block: ``, `Copyright (c) 2025-2026 Sam Gerené` and `SPDX-License-Identifier: Apache-2.0`. The `file_header_template` in `.editorconfig` defines it and IDE0073 checks it, including the file name; `dotnet format` writes it into a new file. The ReSharper template in `ArgusTransfer.sln.DotSettings` must stay the same text. The template cannot contain `;` or `#`: they start a comment in `.editorconfig`.
- **Logging in catch clauses**: always pass the caught exception to the logger (`logger.LogWarning(ex, "...")`), never log only a message (Sonar S6667).
- **No assignments inside conditions**: read the next value before the loop and at the end of its body instead of `while ((x = Read()) != null)` (Sonar S1121).
- **Don't update a `for` loop's counter in its body**: use a `while` loop with an explicit position when the step varies (Sonar S127).
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..a5f8ad1
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,10 @@
+
+
+
+ true
+
+