# `nupp.runtime.uuid.spi`
Implementation interfaces consumed during ordinary module initialization.
Discover with nupp.spi.load; the consumer chooses the unique highest priority.
Omitted priority is zero. Importing these declarations loads no implementation.
## Types
### `Provider` _interface_
```nupp
interface Provider ...
```
Canonical lowercase, hyphenated UUID generation.
Version 4 provides random UUIDs and version 7 provides time-ordered UUIDs.
Version and variant bits must be correct; randomness failures must be reported.
#### Members
| Name | Kind | Description |
| --- | --- | --- |
| [`priority`](#nupp.runtime.uuid.spi.Provider.priority) | field | |
| [`uuid4`](#nupp.runtime.uuid.spi.Provider.uuid4) | method | Generates a random version 4 UUID. |
| [`uuid7`](#nupp.runtime.uuid.spi.Provider.uuid7) | method | Generates a time-ordered version 7 UUID. |
#### `priority` _field_
```nupp
priority: integer?
```
`@readonly`
#### `uuid4` _method_
```nupp
uuid4: function(): string
```
`@readonly`
Generates a random version 4 UUID.
##### Returns
| Type | Description |
| --- | --- |
| `string` | |
#### `uuid7` _method_
```nupp
uuid7: function(): string
```
`@readonly`
Generates a time-ordered version 7 UUID.
##### Returns
| Type | Description |
| --- | --- |
| `string` | |