<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <RootNamespace>ZB.MOM.WW.OtOpcUa.Runtime</RootNamespace>
        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Akka.Hosting"/>
        <PackageReference Include="Akka.Cluster.Tools"/>
    </ItemGroup>

    <ItemGroup>
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Commons\ZB.MOM.WW.OtOpcUa.Commons.csproj"/>
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Cluster\ZB.MOM.WW.OtOpcUa.Cluster.csproj"/>
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Configuration\ZB.MOM.WW.OtOpcUa.Configuration.csproj"/>
        <ProjectReference Include="..\ZB.MOM.WW.OtOpcUa.OpcUaServer\ZB.MOM.WW.OtOpcUa.OpcUaServer.csproj"/>
        <!--
            Concrete OtOpcUa.Driver.* assemblies are loaded reflectively at runtime (Phase 6,
            Task 41+) and intentionally NOT project-referenced here. The driver contracts live in
            ZB.MOM.WW.OtOpcUa.Core.Abstractions, which Runtime picks up transitively through
            ZB.MOM.WW.OtOpcUa.Configuration. Adding a direct reference would create a build-time
            coupling and force every concrete driver to compile into Runtime's output, defeating
            the reflective-load design.
        -->
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Core.Abstractions\ZB.MOM.WW.OtOpcUa.Core.Abstractions.csproj"/>
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian\ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian.csproj"/>
        <!-- ITagUpstreamSource (the scripted-alarm engine's value-feed seam) lives here;
             DependencyMuxTagUpstreamSource implements it so the host actor can push
             DependencyValueChanged values into the engine. -->
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms\ZB.MOM.WW.OtOpcUa.Core.ScriptedAlarms.csproj"/>
        <!-- IScriptLogPublisher lives in Core.Scripting; DpsScriptLogPublisher implements it
             here so the concrete Akka DPS routing stays out of the Core layer. -->
        <ProjectReference Include="..\..\Core\ZB.MOM.WW.OtOpcUa.Core.Scripting\ZB.MOM.WW.OtOpcUa.Core.Scripting.csproj"/>
    </ItemGroup>

    <ItemGroup>
        <!-- OpenTelemetry.Api transitively via Akka; Opc.Ua.Core transitively via OpcUaServer
             (Opc.Ua.Server 1.5.374.126). Both advisories already accepted at the legacy Server. -->
        <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-g94r-2vxg-569j"/>
        <NuGetAuditSuppress Include="https://github.com/advisories/GHSA-h958-fxgg-g7w3"/>
    </ItemGroup>

</Project>
