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

  <PropertyGroup>
    <OutputType>Library</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <RootNamespace>CivicExchange.Core</RootNamespace>
    <Title>CEP C# Reference Implementation</Title>
    <Description>Canonical serialization logic and certification test suite for CEP.</Description>
    <Version>1.0.0</Version>
    <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
  </PropertyGroup>

  <ItemGroup>
    <!-- Core Dependencies: C# relies heavily on built-in libraries for canonicalization:
         - System.Security.Cryptography for SHA-256.
         - System.Text.Json for serialization (used during testing).
         - System.Globalization for invariant culture formatting. -->
    <PackageReference Include="System.Text.Json" Version="8.0.0" />
  </ItemGroup>

  <ItemGroup>
    <!-- Testing Framework: Required for running certification tests against /test_data -->
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="xunit" Version="2.6.2" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.4">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

  <ItemGroup>
    <!-- This is a link to the shared test data. In a real-world build pipeline, 
         these files are copied into the test environment before execution. -->
    <Content Include="../test_data/*">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>

</Project>