# System

**Kind:** Service

**Source:** `Pams/Core/Pams.Core/Pams.Core.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`System` is the PAMS Core project definition in `Pams.Core.csproj`. It declares NuGet package dependencies and build metadata required to restore, compile, and reference the PAMS Core library.

## Diagram

```mermaid
sequenceDiagram
    participant Developer
    participant Project as Pams.Core.csproj
    participant NuGet
    participant Core as Pams.Core

    Developer->>Project: Run package restore or build
    Project->>NuGet: Request declared package dependencies
    NuGet-->>Project: Return restored packages
    Project->>Core: Compile with restored references
    Core-->>Developer: Produce library output
```

## Usage

```ts
import { execFileSync } from "node:child_process";

const projectFile = "Pams/Core/Pams.Core/Pams.Core.csproj";

execFileSync("dotnet", ["restore", projectFile], {
  stdio: "inherit",
});

execFileSync("dotnet", ["build", projectFile], {
  stdio: "inherit",
});
```

## AI Coding Instructions

- Keep NuGet package references and build settings in `Pams.Core.csproj`.
- Run `dotnet restore` after changing package dependency declarations.
- Preserve the existing project-file format when editing package references.
- Check dependent projects after changing package versions or project metadata.
