# `nupp.runtime.services.system`
Canonical host.system API 1 environment contract.
Setup selects service before requiring nupp.system. Importing this declaration
loads no host implementation. Facts describe the executing Nupp ABI, including
emulated environments, and remain fixed for the loaded facade. Providers report
nonempty platform and architecture names, little or big endianness, and a 32- or
64-bit pointer width. They must agree with the target ABI used by generated code.
availableParallelism estimates the number of execution units usable by this
process, including host restrictions, and returns an integer of at least one.
It must not create a worker pool. The browser implementation may suspend while
requesting host facts. Native and browser implementations are selected only from
the artifact's compatible provider catalog; explicit setup selection takes priority.
## Types
### `Provider` _interface_
```nupp
interface Provider
readonly platform: string
readonly architecture: string
readonly endianness: string
readonly pointerBits: integer
readonly availableParallelism: function(): integer
end
```
Facts and a parallelism query for the executing ABI.
#### Methods
##### `availableParallelism`
```nupp
availableParallelism: function(): integer
```
Estimates usable execution units, always at least one.
###### Returns
| Type | Description |
| --- | --- |
| `integer` | |
#### Fields
##### `platform`
```nupp
platform: string
```
Platform name, such as macos, linux, windows, or browser.
##### `architecture`
```nupp
architecture: string
```
Architecture name, such as aarch64, x86_64, or wasm32.
##### `endianness`
```nupp
endianness: string
```
Byte order: little or big.
##### `pointerBits`
```nupp
pointerBits: integer
```
Pointer width in bits: 32 or 64.
## Values
### `service` _variable_
```nupp
const service: services.Service
```
Select during setup before the system facade loads.