# System

**Kind:** Service

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

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

NuGet package dependency

`System` is a NuGet package dependency declared by the `Pams.Storage` project. It provides .NET base library types and runtime APIs that storage code can reference during restore, build, and execution.

## Diagram

```mermaid
sequenceDiagram
    participant Build as Build Tool
    participant Storage as Pams.Storage
    participant System as System Package

    Build->>Storage: Restore project dependencies
    Storage->>System: Resolve referenced APIs
    System-->>Storage: Provide .NET base types
    Build->>Storage: Build storage assembly
```

## Usage

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

// Restore and build Pams.Storage so its System dependency is available.
execFileSync(
  "dotnet",
  ["build", "Pams/Logic/Pams.Storage/Pams.Storage.csproj"],
  { stdio: "inherit" }
);
```

## AI Coding Instructions

- Keep the `System` dependency aligned with the target framework configured by `Pams.Storage`.
- Restore NuGet dependencies before building or testing code that references storage types.
- Do not add JavaScript or TypeScript runtime imports for this dependency; it is resolved by the .NET project build.
- Check project references and package configuration when a `System` namespace or base type cannot be resolved.

## Used by

9 references from 9 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 (9)

- `Pams.Core` — `Pams/Core/Pams.Core/Pams.Core.csproj`:1
- `Pams.Security` — `Pams/Core/Pams.Security/Pams.Security.csproj`:1
- `Pams.Data` — `Pams/Data/Pams.Data/Pams.Data.csproj`:1
- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
- `Pams.Common` — `Pams/Logic/Common/Pams.Common.csproj`:1
- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
- `Pams.CurrencyConverter` — `Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj`:1
- `Pams.Email` — `Pams/Logic/Pams.Email/Pams.Email.csproj`:1

…and 1 more.
