<Project>
  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
    <AnalysisLevel>latest</AnalysisLevel>

    <!-- Runtime Performance Optimizations -->
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
    <TieredCompilation>true</TieredCompilation>
    <TieredCompilationQuickJit>true</TieredCompilationQuickJit>

    <!-- AOT/ReadyToRun for faster startup -->
    <PublishReadyToRun>true</PublishReadyToRun>

    <!-- Trim unused code in publish -->
    <PublishTrimmed>false</PublishTrimmed>

    <!-- Invariant globalization for smaller footprint (if no i18n needed) -->
    <!-- <InvariantGlobalization>true</InvariantGlobalization> -->
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="*" PrivateAssets="all" />
  </ItemGroup>
</Project>
