diff --git a/CLAUDE.md b/CLAUDE.md
index 54fa2ec..9b6680e 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -7,8 +7,7 @@ This project contains design documentation for a distributed SCADA system built
- `README.md` — Master index with component table and architecture diagrams.
- `docs/requirements/HighLevelReqs.md` — Complete high-level requirements covering all functional areas.
- `docs/requirements/Component-*.md` — Individual component design documents (one per component).
-- `docs/requirements/lmxproxy_protocol.md` — LmxProxy gRPC protocol specification.
-- `docs/test_infra/test_infra.md` — Master test infrastructure doc (OPC UA, LDAP, MS SQL, SMTP, REST API, LmxFakeProxy, Traefik).
+- `docs/test_infra/test_infra.md` — Master test infrastructure doc (OPC UA, LDAP, MS SQL, SMTP, REST API, Traefik).
- `docs/plans/` — Design decision documents from refinement sessions.
- `AkkaDotNet/` — Akka.NET reference documentation and best practices notes.
- `infra/` — Docker Compose and config files for local test services.
@@ -160,5 +159,5 @@ This project contains design documentation for a distributed SCADA system built
- **Test user**: `--username multi-role --password password` — has Admin, Design, and Deployment roles. The `admin` user only has the Admin role and cannot create templates, data connections, or deploy.
- **Config file**: `~/.scadalink/config.json` — stores `managementUrl` and default format. See `docker/README.md` for a ready-to-use test config.
- **Rebuild cluster**: `bash docker/deploy.sh` — builds the `scadalink:latest` image and recreates all containers. Run this after code changes to ManagementActor, Host, or any server-side component.
-- **Infrastructure services**: `cd infra && docker compose up -d` — starts LDAP, MS SQL, OPC UA, SMTP, REST API, and LmxFakeProxy. These are separate from the cluster containers in `docker/`.
+- **Infrastructure services**: `cd infra && docker compose up -d` — starts LDAP, MS SQL, OPC UA, SMTP, and REST API. These are separate from the cluster containers in `docker/`.
- **All test LDAP passwords**: `password` (see `infra/glauth/config.toml` for users and groups).
diff --git a/ScadaLink.slnx b/ScadaLink.slnx
index 6ba0660..465035b 100644
--- a/ScadaLink.slnx
+++ b/ScadaLink.slnx
@@ -20,9 +20,6 @@
-
-
-
diff --git a/docs/plans/2026-03-19-lmxfakeproxy-design.md b/deprecated/2026-03-19-lmxfakeproxy-design.md
similarity index 100%
rename from docs/plans/2026-03-19-lmxfakeproxy-design.md
rename to deprecated/2026-03-19-lmxfakeproxy-design.md
diff --git a/docs/plans/2026-03-19-lmxfakeproxy-implementation.md b/deprecated/2026-03-19-lmxfakeproxy-implementation.md
similarity index 100%
rename from docs/plans/2026-03-19-lmxfakeproxy-implementation.md
rename to deprecated/2026-03-19-lmxfakeproxy-implementation.md
diff --git a/docs/plans/2026-03-19-lmxfakeproxy-implementation.md.tasks.json b/deprecated/2026-03-19-lmxfakeproxy-implementation.md.tasks.json
similarity index 100%
rename from docs/plans/2026-03-19-lmxfakeproxy-implementation.md.tasks.json
rename to deprecated/2026-03-19-lmxfakeproxy-implementation.md.tasks.json
diff --git a/src/ScadaLink.DataConnectionLayer/Adapters/ILmxProxyClient.cs b/deprecated/ILmxProxyClient.cs
similarity index 100%
rename from src/ScadaLink.DataConnectionLayer/Adapters/ILmxProxyClient.cs
rename to deprecated/ILmxProxyClient.cs
diff --git a/src/ScadaLink.DataConnectionLayer/Adapters/LmxProxyDataConnection.cs b/deprecated/LmxProxyDataConnection.cs
similarity index 100%
rename from src/ScadaLink.DataConnectionLayer/Adapters/LmxProxyDataConnection.cs
rename to deprecated/LmxProxyDataConnection.cs
diff --git a/tests/ScadaLink.DataConnectionLayer.Tests/LmxProxyDataConnectionTests.cs b/deprecated/LmxProxyDataConnectionTests.cs
similarity index 100%
rename from tests/ScadaLink.DataConnectionLayer.Tests/LmxProxyDataConnectionTests.cs
rename to deprecated/LmxProxyDataConnectionTests.cs
diff --git a/src/ScadaLink.DataConnectionLayer/Adapters/RealLmxProxyClient.cs b/deprecated/RealLmxProxyClient.cs
similarity index 100%
rename from src/ScadaLink.DataConnectionLayer/Adapters/RealLmxProxyClient.cs
rename to deprecated/RealLmxProxyClient.cs
diff --git a/docs/requirements/lmxproxy_protocol.md b/deprecated/docs-lmxproxy_protocol.md
similarity index 100%
rename from docs/requirements/lmxproxy_protocol.md
rename to deprecated/docs-lmxproxy_protocol.md
diff --git a/lmxproxy/.gitignore b/deprecated/lmxproxy/.gitignore
similarity index 100%
rename from lmxproxy/.gitignore
rename to deprecated/lmxproxy/.gitignore
diff --git a/lmxproxy/CLAUDE.md b/deprecated/lmxproxy/CLAUDE.md
similarity index 100%
rename from lmxproxy/CLAUDE.md
rename to deprecated/lmxproxy/CLAUDE.md
diff --git a/lmxproxy/ZB.MOM.WW.LmxProxy.slnx b/deprecated/lmxproxy/ZB.MOM.WW.LmxProxy.slnx
similarity index 100%
rename from lmxproxy/ZB.MOM.WW.LmxProxy.slnx
rename to deprecated/lmxproxy/ZB.MOM.WW.LmxProxy.slnx
diff --git a/lmxproxy/docs/deviations.md b/deprecated/lmxproxy/docs/deviations.md
similarity index 100%
rename from lmxproxy/docs/deviations.md
rename to deprecated/lmxproxy/docs/deviations.md
diff --git a/lmxproxy/docs/lmxproxy_protocol.md b/deprecated/lmxproxy/docs/lmxproxy_protocol.md
similarity index 100%
rename from lmxproxy/docs/lmxproxy_protocol.md
rename to deprecated/lmxproxy/docs/lmxproxy_protocol.md
diff --git a/lmxproxy/docs/lmxproxy_updates.md b/deprecated/lmxproxy/docs/lmxproxy_updates.md
similarity index 100%
rename from lmxproxy/docs/lmxproxy_updates.md
rename to deprecated/lmxproxy/docs/lmxproxy_updates.md
diff --git a/lmxproxy/docs/plans/2026-03-21-lmxproxy-v2-rebuild-design.md b/deprecated/lmxproxy/docs/plans/2026-03-21-lmxproxy-v2-rebuild-design.md
similarity index 100%
rename from lmxproxy/docs/plans/2026-03-21-lmxproxy-v2-rebuild-design.md
rename to deprecated/lmxproxy/docs/plans/2026-03-21-lmxproxy-v2-rebuild-design.md
diff --git a/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md b/deprecated/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md
similarity index 100%
rename from lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md
rename to deprecated/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md
diff --git a/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md.tasks.json b/deprecated/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md.tasks.json
similarity index 100%
rename from lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md.tasks.json
rename to deprecated/lmxproxy/docs/plans/2026-03-22-gap1-gap2-reconnect-subscriptions.md.tasks.json
diff --git a/lmxproxy/docs/plans/lmxproxy-stale-session-fix.md b/deprecated/lmxproxy/docs/plans/lmxproxy-stale-session-fix.md
similarity index 100%
rename from lmxproxy/docs/plans/lmxproxy-stale-session-fix.md
rename to deprecated/lmxproxy/docs/plans/lmxproxy-stale-session-fix.md
diff --git a/lmxproxy/docs/plans/phase-1-protocol-domain-types.md b/deprecated/lmxproxy/docs/plans/phase-1-protocol-domain-types.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-1-protocol-domain-types.md
rename to deprecated/lmxproxy/docs/plans/phase-1-protocol-domain-types.md
diff --git a/lmxproxy/docs/plans/phase-2-host-core.md b/deprecated/lmxproxy/docs/plans/phase-2-host-core.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-2-host-core.md
rename to deprecated/lmxproxy/docs/plans/phase-2-host-core.md
diff --git a/lmxproxy/docs/plans/phase-3-host-grpc-security-config.md b/deprecated/lmxproxy/docs/plans/phase-3-host-grpc-security-config.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-3-host-grpc-security-config.md
rename to deprecated/lmxproxy/docs/plans/phase-3-host-grpc-security-config.md
diff --git a/lmxproxy/docs/plans/phase-4-host-health-metrics.md b/deprecated/lmxproxy/docs/plans/phase-4-host-health-metrics.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-4-host-health-metrics.md
rename to deprecated/lmxproxy/docs/plans/phase-4-host-health-metrics.md
diff --git a/lmxproxy/docs/plans/phase-5-client-core.md b/deprecated/lmxproxy/docs/plans/phase-5-client-core.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-5-client-core.md
rename to deprecated/lmxproxy/docs/plans/phase-5-client-core.md
diff --git a/lmxproxy/docs/plans/phase-6-client-extras.md b/deprecated/lmxproxy/docs/plans/phase-6-client-extras.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-6-client-extras.md
rename to deprecated/lmxproxy/docs/plans/phase-6-client-extras.md
diff --git a/lmxproxy/docs/plans/phase-7-integration-deployment.md b/deprecated/lmxproxy/docs/plans/phase-7-integration-deployment.md
similarity index 100%
rename from lmxproxy/docs/plans/phase-7-integration-deployment.md
rename to deprecated/lmxproxy/docs/plans/phase-7-integration-deployment.md
diff --git a/lmxproxy/docs/requirements/Component-Client.md b/deprecated/lmxproxy/docs/requirements/Component-Client.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-Client.md
rename to deprecated/lmxproxy/docs/requirements/Component-Client.md
diff --git a/lmxproxy/docs/requirements/Component-Configuration.md b/deprecated/lmxproxy/docs/requirements/Component-Configuration.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-Configuration.md
rename to deprecated/lmxproxy/docs/requirements/Component-Configuration.md
diff --git a/lmxproxy/docs/requirements/Component-GrpcServer.md b/deprecated/lmxproxy/docs/requirements/Component-GrpcServer.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-GrpcServer.md
rename to deprecated/lmxproxy/docs/requirements/Component-GrpcServer.md
diff --git a/lmxproxy/docs/requirements/Component-HealthAndMetrics.md b/deprecated/lmxproxy/docs/requirements/Component-HealthAndMetrics.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-HealthAndMetrics.md
rename to deprecated/lmxproxy/docs/requirements/Component-HealthAndMetrics.md
diff --git a/lmxproxy/docs/requirements/Component-MxAccessClient.md b/deprecated/lmxproxy/docs/requirements/Component-MxAccessClient.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-MxAccessClient.md
rename to deprecated/lmxproxy/docs/requirements/Component-MxAccessClient.md
diff --git a/lmxproxy/docs/requirements/Component-Protocol.md b/deprecated/lmxproxy/docs/requirements/Component-Protocol.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-Protocol.md
rename to deprecated/lmxproxy/docs/requirements/Component-Protocol.md
diff --git a/lmxproxy/docs/requirements/Component-Security.md b/deprecated/lmxproxy/docs/requirements/Component-Security.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-Security.md
rename to deprecated/lmxproxy/docs/requirements/Component-Security.md
diff --git a/lmxproxy/docs/requirements/Component-ServiceHost.md b/deprecated/lmxproxy/docs/requirements/Component-ServiceHost.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-ServiceHost.md
rename to deprecated/lmxproxy/docs/requirements/Component-ServiceHost.md
diff --git a/lmxproxy/docs/requirements/Component-SessionManager.md b/deprecated/lmxproxy/docs/requirements/Component-SessionManager.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-SessionManager.md
rename to deprecated/lmxproxy/docs/requirements/Component-SessionManager.md
diff --git a/lmxproxy/docs/requirements/Component-SubscriptionManager.md b/deprecated/lmxproxy/docs/requirements/Component-SubscriptionManager.md
similarity index 100%
rename from lmxproxy/docs/requirements/Component-SubscriptionManager.md
rename to deprecated/lmxproxy/docs/requirements/Component-SubscriptionManager.md
diff --git a/lmxproxy/docs/requirements/HighLevelReqs.md b/deprecated/lmxproxy/docs/requirements/HighLevelReqs.md
similarity index 100%
rename from lmxproxy/docs/requirements/HighLevelReqs.md
rename to deprecated/lmxproxy/docs/requirements/HighLevelReqs.md
diff --git a/lmxproxy/docs/sta_gap.md b/deprecated/lmxproxy/docs/sta_gap.md
similarity index 100%
rename from lmxproxy/docs/sta_gap.md
rename to deprecated/lmxproxy/docs/sta_gap.md
diff --git a/lmxproxy/instances_config.md b/deprecated/lmxproxy/instances_config.md
similarity index 100%
rename from lmxproxy/instances_config.md
rename to deprecated/lmxproxy/instances_config.md
diff --git a/lmxproxy/lib/ArchestrA.MXAccess.dll b/deprecated/lmxproxy/lib/ArchestrA.MXAccess.dll
similarity index 100%
rename from lmxproxy/lib/ArchestrA.MXAccess.dll
rename to deprecated/lmxproxy/lib/ArchestrA.MXAccess.dll
diff --git a/lmxproxy/mxaccess_documentation.md b/deprecated/lmxproxy/mxaccess_documentation.md
similarity index 100%
rename from lmxproxy/mxaccess_documentation.md
rename to deprecated/lmxproxy/mxaccess_documentation.md
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Properties/AssemblyInfo.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Properties/AssemblyInfo.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Properties/AssemblyInfo.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Properties/AssemblyInfo.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/App.config b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/App.config
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/App.config
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/App.config
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ClientStats.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ClientStats.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ClientStats.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ClientStats.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Connection.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Connection.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Connection.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Connection.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.EventHandlers.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.EventHandlers.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.EventHandlers.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.EventHandlers.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.NestedTypes.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.NestedTypes.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.NestedTypes.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.NestedTypes.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.ReadWrite.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.ReadWrite.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.ReadWrite.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.ReadWrite.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Subscription.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Subscription.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Subscription.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.Subscription.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Implementation/MxAccessClient.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Program.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Program.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Program.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Program.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/HealthCheckService.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/HealthCheckService.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/HealthCheckService.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/HealthCheckService.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/PerformanceMetrics.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/PerformanceMetrics.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/PerformanceMetrics.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/PerformanceMetrics.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/RetryPolicies.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/RetryPolicies.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/RetryPolicies.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/RetryPolicies.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SessionManager.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SessionManager.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SessionManager.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SessionManager.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusReportService.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusReportService.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusReportService.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusReportService.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusWebServer.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusWebServer.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusWebServer.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/StatusWebServer.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SubscriptionManager.cs b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SubscriptionManager.cs
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SubscriptionManager.cs
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/Services/SubscriptionManager.cs
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.Production.json b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.Production.json
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.Production.json
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.Production.json
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.json b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.json
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.json
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.json
diff --git a/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.tls.json b/deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.tls.json
similarity index 100%
rename from lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.tls.json
rename to deprecated/lmxproxy/src-reference/ZB.MOM.WW.LmxProxy.Host/appsettings.tls.json
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ClientTlsConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ConnectionState.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Quality.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/QualityExtensions.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/ScadaContracts.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Domain/Vtq.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClient.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ILmxProxyClientFactory.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ApiKeyInfo.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ClientMetrics.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.CodeFirstSubscription.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.Connection.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.ISubscription.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClient.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientBuilder.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientOptions.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientOptions.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientOptions.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/LmxProxyClientOptions.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/Security/GrpcChannelFactory.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ServiceCollectionExtensions.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/StreamingExtensions.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Client/ZB.MOM.WW.LmxProxy.Client.csproj
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConfigurationValidator.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConnectionConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConnectionConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConnectionConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ConnectionConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/LmxProxyConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/ServiceRecoveryConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/SubscriptionConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/TlsConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/WebServerConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/WebServerConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/WebServerConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Configuration/WebServerConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionState.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ConnectionStateChangedEventArgs.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/IScadaClient.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/MxStatusMapper.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/MxStatusMapper.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/MxStatusMapper.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/MxStatusMapper.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ProbeResult.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ProbeResult.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ProbeResult.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/ProbeResult.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Quality.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityCodeMapper.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityCodeMapper.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityCodeMapper.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityCodeMapper.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityExtensions.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityExtensions.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityExtensions.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/QualityExtensions.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/SubscriptionStats.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueComparer.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueComparer.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueComparer.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueComparer.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueConverter.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueConverter.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueConverter.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/TypedValueConverter.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Domain/Vtq.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Protos/scada.proto
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Grpc/Services/ScadaGrpcService.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Health/HealthCheckService.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Health/HealthCheckService.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Health/HealthCheckService.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Health/HealthCheckService.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/LmxProxyService.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Metrics/PerformanceMetrics.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Metrics/PerformanceMetrics.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Metrics/PerformanceMetrics.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Metrics/PerformanceMetrics.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Connection.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Connection.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Connection.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Connection.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.EventHandlers.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.EventHandlers.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.EventHandlers.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.EventHandlers.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.ReadWrite.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.ReadWrite.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.ReadWrite.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.ReadWrite.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Subscription.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Subscription.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Subscription.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.Subscription.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/MxAccessClient.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/StaComThread.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/StaComThread.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/StaComThread.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/MxAccess/StaComThread.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Program.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Program.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Program.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Program.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKey.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyConfiguration.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyInterceptor.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/ApiKeyService.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Security/TlsCertificateManager.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Sessions/SessionManager.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Sessions/SessionManager.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Sessions/SessionManager.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Sessions/SessionManager.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusModels.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusReportService.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusWebServer.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusWebServer.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusWebServer.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Status/StatusWebServer.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/Subscriptions/SubscriptionManager.cs
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/ZB.MOM.WW.LmxProxy.Host.csproj
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.json b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.json
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.json
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.json
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2.json b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2.json
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2.json
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2.json
diff --git a/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2b.json b/deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2b.json
similarity index 100%
rename from lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2b.json
rename to deprecated/lmxproxy/src/ZB.MOM.WW.LmxProxy.Host/appsettings.v2b.json
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/CheckApiKeyTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/CheckApiKeyTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/CheckApiKeyTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/CheckApiKeyTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ConnectionTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ConnectionTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ConnectionTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ConnectionTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/GlobalUsings.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/GlobalUsings.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/GlobalUsings.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/GlobalUsings.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/IntegrationTestBase.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/IntegrationTestBase.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/IntegrationTestBase.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/IntegrationTestBase.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ReadTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ReadTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ReadTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ReadTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/SubscribeTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/SubscribeTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/SubscribeTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/SubscribeTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteBatchAndWaitTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteBatchAndWaitTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteBatchAndWaitTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteBatchAndWaitTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/WriteTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests.csproj b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests.csproj
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests.csproj
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests.csproj
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/appsettings.test.json b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/appsettings.test.json
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/appsettings.test.json
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/appsettings.test.json
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/xunit.runner.json b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/xunit.runner.json
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/xunit.runner.json
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.IntegrationTests/xunit.runner.json
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ClientMetricsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ClientMetricsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ClientMetricsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ClientMetricsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/CrossStack/CrossStackSerializationTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/CrossStack/CrossStackSerializationTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/CrossStack/CrossStackSerializationTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/CrossStack/CrossStackSerializationTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/QualityExtensionsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/QualityExtensionsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/QualityExtensionsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/QualityExtensionsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/ScadaContractsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/ScadaContractsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/ScadaContractsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/ScadaContractsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/VtqTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/VtqTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/VtqTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Domain/VtqTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeLmxProxyClient.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeLmxProxyClient.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeLmxProxyClient.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeLmxProxyClient.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeScadaService.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeScadaService.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeScadaService.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/FakeScadaService.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/TestableClient.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/TestableClient.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/TestableClient.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/Fakes/TestableClient.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientBuilderTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientBuilderTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientBuilderTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientBuilderTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientConnectionTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientConnectionTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientConnectionTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientConnectionTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientFactoryTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientFactoryTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientFactoryTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientFactoryTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientReadWriteTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientReadWriteTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientReadWriteTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientReadWriteTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientSubscriptionTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientSubscriptionTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientSubscriptionTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/LmxProxyClientSubscriptionTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ServiceCollectionExtensionsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ServiceCollectionExtensionsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ServiceCollectionExtensionsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ServiceCollectionExtensionsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/StreamingExtensionsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/StreamingExtensionsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/StreamingExtensionsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/StreamingExtensionsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/TypedValueConversionTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/TypedValueConversionTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/TypedValueConversionTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/TypedValueConversionTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ZB.MOM.WW.LmxProxy.Client.Tests.csproj b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ZB.MOM.WW.LmxProxy.Client.Tests.csproj
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ZB.MOM.WW.LmxProxy.Client.Tests.csproj
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Client.Tests/ZB.MOM.WW.LmxProxy.Client.Tests.csproj
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Configuration/ConfigurationValidatorTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Configuration/ConfigurationValidatorTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Configuration/ConfigurationValidatorTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Configuration/ConfigurationValidatorTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityCodeMapperTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityCodeMapperTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityCodeMapperTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityCodeMapperTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityExtensionsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityExtensionsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityExtensionsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/QualityExtensionsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/TypedValueConverterTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/TypedValueConverterTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/TypedValueConverterTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Domain/TypedValueConverterTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Health/HealthCheckServiceTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Health/HealthCheckServiceTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Health/HealthCheckServiceTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Health/HealthCheckServiceTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Metrics/PerformanceMetricsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Metrics/PerformanceMetricsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Metrics/PerformanceMetricsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Metrics/PerformanceMetricsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/MxAccess/TypedValueEqualsTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/MxAccess/TypedValueEqualsTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/MxAccess/TypedValueEqualsTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/MxAccess/TypedValueEqualsTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyInterceptorTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyInterceptorTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyInterceptorTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyInterceptorTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyServiceTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyServiceTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyServiceTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Security/ApiKeyServiceTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Sessions/SessionManagerTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Sessions/SessionManagerTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Sessions/SessionManagerTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Sessions/SessionManagerTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Status/StatusReportServiceTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Status/StatusReportServiceTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Status/StatusReportServiceTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Status/StatusReportServiceTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Subscriptions/SubscriptionManagerTests.cs b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Subscriptions/SubscriptionManagerTests.cs
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Subscriptions/SubscriptionManagerTests.cs
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/Subscriptions/SubscriptionManagerTests.cs
diff --git a/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/ZB.MOM.WW.LmxProxy.Host.Tests.csproj b/deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/ZB.MOM.WW.LmxProxy.Host.Tests.csproj
similarity index 100%
rename from lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/ZB.MOM.WW.LmxProxy.Host.Tests.csproj
rename to deprecated/lmxproxy/tests/ZB.MOM.WW.LmxProxy.Host.Tests/ZB.MOM.WW.LmxProxy.Host.Tests.csproj
diff --git a/windev.md b/deprecated/windev.md
similarity index 100%
rename from windev.md
rename to deprecated/windev.md
diff --git a/docs/requirements/Component-ClusterInfrastructure.md b/docs/requirements/Component-ClusterInfrastructure.md
index 05c5a34..dd48517 100644
--- a/docs/requirements/Component-ClusterInfrastructure.md
+++ b/docs/requirements/Component-ClusterInfrastructure.md
@@ -32,7 +32,7 @@ Both central and site clusters.
- The Site Runtime Deployment Manager runs as an **Akka.NET cluster singleton** on the active node, owning the full Instance Actor hierarchy.
- One standby node receives replicated store-and-forward data and is ready to take over.
- Connected to local SQLite databases (store-and-forward buffer, event logs, deployed configurations).
-- Connected to machines via data connections (OPC UA, LmxProxy).
+- Connected to machines via data connections (OPC UA).
## Failover Behavior
diff --git a/docs/requirements/Component-DataConnectionLayer.md b/docs/requirements/Component-DataConnectionLayer.md
index b3c74ba..fcf6ee4 100644
--- a/docs/requirements/Component-DataConnectionLayer.md
+++ b/docs/requirements/Component-DataConnectionLayer.md
@@ -10,7 +10,7 @@ Site clusters only. Central does not interact with machines directly.
## Responsibilities
-- Manage data connections defined centrally and deployed to sites as part of artifact deployment (OPC UA servers, LmxProxy endpoints). Data connection definitions are stored in local SQLite after deployment.
+- Manage data connections defined centrally and deployed to sites as part of artifact deployment (OPC UA servers). Data connection definitions are stored in local SQLite after deployment.
- Establish and maintain connections to data sources based on deployed instance configurations.
- Subscribe to tag paths as requested by Instance Actors (based on attribute data source references in the flattened configuration).
- Deliver tag value updates to the requesting Instance Actors.
@@ -19,7 +19,7 @@ Site clusters only. Central does not interact with machines directly.
## Common Interface
-Both OPC UA and LmxProxy implement the same interface:
+All protocol adapters implement the same interface:
```
IDataConnection : IAsyncDisposable
@@ -38,52 +38,16 @@ IDataConnection : IAsyncDisposable
The `Disconnected` event is raised by an adapter when it detects an unexpected connection loss (server offline, network failure, keep-alive timeout). The `DataConnectionActor` subscribes to this event to trigger the reconnection state machine. Additional protocols can be added by implementing this interface.
-### Concrete Type Mappings
-
-| IDataConnection | OPC UA SDK | LmxProxy (`RealLmxProxyClient`) |
-|---|---|---|
-| `Connect()` | OPC UA session establishment | gRPC `Connect` RPC with `x-api-key` metadata header, server returns `SessionId` |
-| `Disconnect()` | Close OPC UA session | gRPC `Disconnect` RPC |
-| `Subscribe(tagPath, callback)` | OPC UA Monitored Items | gRPC `Subscribe` server-streaming RPC (`stream VtqMessage`), cancelled via `CancellationTokenSource` |
-| `Unsubscribe(id)` | Remove Monitored Item | Cancel the `CancellationTokenSource` for that subscription (stops streaming RPC) |
-| `Read(tagPath)` | OPC UA Read | gRPC `Read` RPC → `VtqMessage` → `LmxVtq` |
-| `ReadBatch(tagPaths)` | OPC UA Read (multiple nodes) | gRPC `ReadBatch` RPC → `repeated VtqMessage` → `IDictionary` |
-| `Write(tagPath, value)` | OPC UA Write | gRPC `Write` RPC (throws on failure) |
-| `WriteBatch(values)` | OPC UA Write (multiple nodes) | gRPC `WriteBatch` RPC (throws on failure) |
-| `WriteBatchAndWait(...)` | OPC UA Write + poll for confirmation | `WriteBatch` + poll `Read` at 100ms intervals until response value matches or timeout |
-| `Status` | OPC UA session state | `IsConnected` — true when `SessionId` is non-empty |
-| `Disconnected` | `Session.KeepAlive` event fires with bad `ServiceResult` | gRPC subscription stream ends or throws non-cancellation `RpcException` |
-
### Common Value Type
-Both protocols produce the same value tuple consumed by Instance Actors. Before the first value update arrives from the DCL, data-sourced attributes are held at **uncertain** quality by the Instance Actor (see Site Runtime — Initialization):
+All protocols produce the same value tuple consumed by Instance Actors. Before the first value update arrives from the DCL, data-sourced attributes are held at **uncertain** quality by the Instance Actor (see Site Runtime — Initialization):
-| Concept | ScadaLink Design | LmxProxy Wire Format | Local Type |
-|---|---|---|---|
-| Value container | `TagValue(Value, Quality, Timestamp)` | `VtqMessage { Tag, TypedValue, TimestampUtcTicks, QualityCode }` | `LmxVtq(Value, TimestampUtc, Quality)` — readonly record struct |
-| Quality | `QualityCode` enum: Good / Bad / Uncertain | `QualityCode` enum (OPC-style byte values) | Mapped via `IsGood()`/`IsUncertain()`/`IsBad()` extensions |
-| Timestamp | `DateTimeOffset` (UTC) | `int64` (DateTime.Ticks, UTC) | `DateTime` (UTC) |
-| Value type | `object?` | `TypedValue` (protobuf oneof: bool, int32, int64, float, double, string, datetime, array) | `object?` (native typed from SDK's `Vtq.Value`) |
-
-### Value Serialization
-
-**Inbound (reads/subscriptions)**: The LmxProxy SDK returns `Vtq(object? Value, DateTime Timestamp, Quality Quality)`. The adapter's `NormalizeValue` converts complex types (`ArrayValue`, raw arrays) to display strings before passing them into the ScadaLink system. Scalar types (`bool`, `int`, `double`, `string`, `DateTime`) pass through unchanged.
-
-**Outbound (writes)**: The adapter's `ToTypedValue` converts `object?` values to the SDK's `TypedValue` for native typed writes:
-
-| Source Type | TypedValue Variant |
+| Concept | ScadaLink Design |
|---|---|
-| `bool` | `BoolValue` |
-| `int` | `Int32Value` |
-| `long` | `Int64Value` |
-| `float` | `FloatValue` |
-| `double` | `DoubleValue` |
-| `string` | `StringValue` |
-| `DateTime` | `DatetimeValue` (UTC ticks) |
-| `null` | `StringValue` (empty) |
-| fallback | `StringValue` (`.ToString()`) |
-
-**Array normalization**: `ValueFormatter.FormatDisplayValue` uses reflection to extract typed array contents from LmxProxy `ArrayValue` objects and formats them as comma-separated strings. This ensures downstream code (Instance Actors, debug views, gRPC streaming) never sees opaque SDK types.
+| Value container | `TagValue(Value, Quality, Timestamp)` |
+| Quality | `QualityCode` enum: Good / Bad / Uncertain |
+| Timestamp | `DateTimeOffset` (UTC) |
+| Value type | `object?` |
## Supported Protocols
@@ -94,36 +58,6 @@ Both protocols produce the same value tuple consumed by Instance Actors. Before
- Read/Write via OPC UA Read/Write services with StatusCode-based quality mapping.
- Disconnect detection via `Session.KeepAlive` event (see Disconnect Detection Pattern below).
-### LmxProxy (Custom Protocol)
-
-LmxProxy is a gRPC-based protocol for communicating with LMX data servers. The DCL uses the real `ZB.MOM.WW.LmxProxy.Client` SDK library via project reference. `RealLmxProxyClient` is a thin adapter wrapper around the SDK client for testability — it implements a local `ILmxProxyClient` interface while delegating to the SDK. The SDK handles gRPC channel management, retry policies (Polly), keep-alive, and TLS.
-
-**Transport & Connection**:
-- gRPC over HTTP/2 via the SDK's managed channel.
-- Default port: **50051**.
-- Session-based: `Connect` RPC returns a `SessionId` used for all subsequent operations.
-- Keep-alive: Managed by the LmxProxy server's session timeout. The DCL reconnect cycle handles session loss.
-
-**Authentication & TLS**:
-- API key-based authentication sent as `x-api-key` gRPC metadata header on every call. The server's `ApiKeyInterceptor` validates the header before the request reaches the service method. The API key is also included in the `ConnectRequest` body for session-level validation.
-- Plain HTTP/2 (no TLS) for current deployments. The server supports TLS when configured.
-
-**Subscriptions**:
-- Server-streaming gRPC (`Subscribe` RPC returns `stream VtqMessage`).
-- Configurable sampling interval (default: 0 = on-change).
-- Wire format: `VtqMessage` with `TypedValue` (protobuf oneof) for value, `QualityCode` enum for quality — see [lmxproxy_protocol.md](lmxproxy_protocol.md) for wire details.
-- Subscription lifetime managed by `CancellationTokenSource` — cancellation stops the streaming RPC.
-
-**Client Implementation** (`RealLmxProxyClient`):
-- Thin adapter over the `ZB.MOM.WW.LmxProxy.Client` SDK. Implements `ILmxProxyClient` for testability.
-- `ILmxProxyClientFactory` creates instances configured with host, port, and API key.
-- Read values arrive as native typed objects from the SDK's `Vtq.Value` — no string parsing needed.
-- Quality mapping: SDK's `Quality` enum (OPC-style byte values) mapped to ScadaLink's `QualityCode` via `IsGood()`/`IsUncertain()`/`IsBad()` extension methods.
-
-**Proto Source**: The `.proto` file originates from the LmxProxy server repository (`lmx/Proxy/Grpc/Protos/scada.proto` in ScadaBridge). The SDK provides the generated client stubs.
-
-**Test Infrastructure**: The `infra/lmxfakeproxy/` project provides a fake LmxProxy server that bridges to the OPC UA test server. It implements the full `scada.ScadaService` proto, enabling end-to-end testing of `RealLmxProxyClient` without a Windows LmxProxy deployment. See [test_infra_lmxfakeproxy.md](../test_infra/test_infra_lmxfakeproxy.md) for setup.
-
## Endpoint Redundancy
Data connections support an optional backup endpoint for automatic failover when the active endpoint becomes unreachable. Both endpoints use the same protocol.
@@ -181,16 +115,6 @@ All settings are parsed from the data connection's configuration JSON dictionari
| `SecurityMode` | string | `None` | Preferred endpoint security: `None`, `Sign`, or `SignAndEncrypt` |
| `AutoAcceptUntrustedCerts` | bool | `true` | Accept untrusted server certificates |
-### LmxProxy Settings
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| `Host` | string | `localhost` | LmxProxy server hostname |
-| `Port` | int | `50051` | LmxProxy gRPC port |
-| `ApiKey` | string | *(none)* | API key for `x-api-key` header authentication |
-| `SamplingIntervalMs` | int | `0` | Subscription sampling interval: 0 = on-change, >0 = time-based (ms) |
-| `UseTls` | bool | `false` | Use HTTPS instead of plain HTTP/2 for gRPC channel |
-
### Shared Settings (appsettings.json)
These are configured via `DataConnectionOptions` in `appsettings.json`, not per-connection:
@@ -200,7 +124,6 @@ These are configured via `DataConnectionOptions` in `appsettings.json`, not per-
| `ReconnectInterval` | 5s | Fixed interval between reconnection attempts |
| `TagResolutionRetryInterval` | 10s | Retry interval for unresolved tag paths |
| `WriteTimeout` | 30s | Timeout for write operations |
-| `LmxProxyKeepAliveInterval` | 30s | Keep-alive ping interval for LmxProxy sessions |
## Subscription Management
@@ -235,8 +158,6 @@ Each data connection is managed by a dedicated connection actor that uses the Ak
This pattern ensures no messages are lost during connection transitions and is the standard Akka.NET approach for actors with I/O lifecycle dependencies.
-**LmxProxy-specific notes**: The `RealLmxProxyClient` holds the `SessionId` returned by the `Connect` RPC and includes it in all subsequent operations. Subscriptions use server-streaming gRPC — a background task reads from the `ResponseStream` and invokes the callback for each `VtqMessage`. When the stream breaks (server offline, network failure), the background task detects the `RpcException` or stream end and invokes the `onStreamError` callback, which triggers the adapter's `Disconnected` event. The DCL actor transitions to **Reconnecting**, pushes bad quality, disposes the client, and retries at the fixed interval.
-
**OPC UA-specific notes**: The `RealOpcUaClient` uses the OPC Foundation SDK's `Session.KeepAlive` event for proactive disconnect detection. The SDK sends keep-alive requests at the subscription's `KeepAliveCount × PublishingInterval` (default: 10s). When keep-alive fails, the `ConnectionLost` event fires, triggering the same reconnection flow. On reconnection, the DCL re-creates the OPC UA session and subscription, then re-adds all monitored items.
## Connection Lifecycle & Reconnection
@@ -254,14 +175,13 @@ Each adapter implements the `IDataConnection.Disconnected` event to proactively
**Proactive detection** (server goes offline between operations):
- **OPC UA**: The OPC Foundation SDK fires `Session.KeepAlive` events at regular intervals. `RealOpcUaClient` hooks this event; when `ServiceResult.IsBad(e.Status)` (server unreachable, keep-alive timeout), it fires `ConnectionLost`. The `OpcUaDataConnection` adapter translates this into `IDataConnection.Disconnected`.
-- **LmxProxy**: gRPC server-streaming subscriptions run in background tasks reading from `ResponseStream`. When the server goes offline, the stream either ends normally (server closed) or throws a non-cancellation `RpcException`. `RealLmxProxyClient` invokes the `onStreamError` callback, which `LmxProxyDataConnection` translates into `IDataConnection.Disconnected`.
**Reactive detection** (failure discovered during an operation):
- Both adapters wrap `ReadAsync` (and by extension `ReadBatchAsync`) with exception handling. If a read throws a non-cancellation exception, the adapter calls `RaiseDisconnected()` and re-throws. The `DataConnectionActor`'s existing error handling catches the exception while the disconnect event triggers the reconnection state machine.
**Event marshalling**: The `DataConnectionActor` subscribes to `_adapter.Disconnected` in `PreStart()`. Since `Disconnected` may fire from a background thread (gRPC stream task, OPC UA keep-alive timer), the handler sends an `AdapterDisconnected` message to `Self`, marshalling the notification onto the actor's message loop. This triggers `BecomeReconnecting()` → bad quality push → retry timer.
-**Once-only guard**: Both `LmxProxyDataConnection` and `OpcUaDataConnection` use a `volatile bool _disconnectFired` flag to ensure `RaiseDisconnected()` fires exactly once per connection session. The flag resets on successful reconnection (`ConnectAsync`).
+**Once-only guard**: `OpcUaDataConnection` uses a `volatile bool _disconnectFired` flag to ensure `RaiseDisconnected()` fires exactly once per connection session. The flag resets on successful reconnection (`ConnectAsync`).
## Write Failure Handling
diff --git a/docs/requirements/HighLevelReqs.md b/docs/requirements/HighLevelReqs.md
index 0c45992..661215a 100644
--- a/docs/requirements/HighLevelReqs.md
+++ b/docs/requirements/HighLevelReqs.md
@@ -60,8 +60,8 @@
- Store-and-forward buffers are persisted to a **local SQLite database on each node** and replicated between nodes via application-level replication (see 1.3).
### 2.4 Data Connection Protocols
-- The system supports **OPC UA** and **LmxProxy** (a gRPC-based custom protocol with an existing client SDK).
-- Both protocols implement a **common interface** supporting: connect, subscribe to tag paths, receive value updates, and write values.
+- The system supports **OPC UA** as the primary data connection protocol.
+- All protocols implement a **common interface** supporting: connect, subscribe to tag paths, receive value updates, and write values.
- Additional protocols can be added by implementing the common interface.
- The Data Connection Layer is a **clean data pipe** — it publishes tag value updates to Instance Actors but performs no evaluation of triggers or alarm conditions.
- **Initial attribute quality**: Attributes bound to a data connection start with **uncertain** quality when the Instance Actor initializes. The quality remains uncertain until the first value update is received from the Data Connection Layer. This distinguishes "never received a value" from "received a known-good value" or "connection lost" (bad quality).
diff --git a/docs/test_infra/test_infra.md b/docs/test_infra/test_infra.md
index 4673b4f..f324bf4 100644
--- a/docs/test_infra/test_infra.md
+++ b/docs/test_infra/test_infra.md
@@ -50,21 +50,7 @@ Each service has a dedicated document with configuration details, verification s
In addition to the local Docker services, the following remote services are available for testing against real AVEVA System Platform hardware.
-### LmxProxy v2 (windev — 10.100.0.48)
-
-Two LmxProxy v2 instances run as Windows services on windev, both connected to the same AVEVA System Platform via MxAccess COM. These provide the primary/backup pair for Data Connection Layer testing.
-
-| | Instance A | Instance B |
-|---|---|---|
-| **gRPC Endpoint** | `10.100.0.48:50100` | `10.100.0.48:50101` |
-| **HTTP Status** | `http://10.100.0.48:8081` | `http://10.100.0.48:8082` |
-| **Service Name** | `ZB.MOM.WW.LmxProxy.Host.V2` | `ZB.MOM.WW.LmxProxy.Host.V2B` |
-
-API key (ReadWrite): `c4559c7c6acc60a997135c1381162e3c30f4572ece78dd933c1a626e6fd933b4`
-
-Full details: [`lmxproxy/instances_config.md`](../../lmxproxy/instances_config.md)
-
-**Primary/backup testing**: The dual OPC UA test servers (ports 50000 and 50010) in local Docker and the dual LmxProxy v2 instances on windev (ports 50100 and 50101) provide primary/backup endpoint pairs for testing Data Connection Layer failover. Use `docker compose stop opcua` to simulate primary failure and verify automatic failover to the backup.
+**Primary/backup testing**: The dual OPC UA test servers (ports 50000 and 50010) in local Docker provide primary/backup endpoint pairs for testing Data Connection Layer failover. Use `docker compose stop opcua` to simulate primary failure and verify automatic failover to the backup.
## Connection Strings
diff --git a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
index eba03ba..8515e9f 100644
--- a/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
+++ b/src/ScadaLink.CentralUI/Components/Pages/Admin/DataConnectionForm.razor
@@ -50,7 +50,6 @@
diff --git a/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor b/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor
index 7df7140..68e7736 100644
--- a/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor
+++ b/src/ScadaLink.CentralUI/Components/Pages/Deployment/DebugView.razor
@@ -94,7 +94,7 @@