# System.Core

**Kind:** Service

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

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

NuGet package dependency

`System.Core` is a NuGet package dependency declared by the `Pams.CurrencyConverter` project. It provides framework APIs required when the Currency Converter project is restored and built.

## Diagram

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

    Developer->>Project: Restore or build project
    Project->>NuGet: Resolve package dependency
    NuGet->>SystemCore: Retrieve package assets
    SystemCore-->>Project: Provide referenced framework APIs
    Project-->>Developer: Build with dependency available
```

## Usage

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

const projectFile =
  "Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj";

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

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

## AI Coding Instructions

- Treat `System.Core` as a project dependency rather than a runtime service API.
- Keep the package declaration compatible with the project's legacy-format NuGet configuration.
- Restore the project after changing package references so NuGet resolves `System.Core`.
- Check framework compatibility before changing the package version or target framework.

## Used by

3 references from 3 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (3)

- `Pams.Data` — `Pams/Data/Pams.Data/Pams.Data.csproj`:1
- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
- `Pams.CurrencyConverter` — `Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj`:1
