# Module: `nupp.fieldcodec`
Type-directed keyed codecs materialized from semantic reflection.
## Types
### `Blueprint` _record_
```nupp
record Blueprint
end
```
### `KeyedCodec` _record_
```nupp
record KeyedCodec
encode: function(self, value: T): {[string]: any}
decode: function(self, value: {[string]: any}): (T?, string?)
fingerprint: string
end
```
#### Type parameters
| Name | Description |
| --- | --- |
| `T` | |
#### Methods
##### `encode`
```nupp
encode: function(self, value: T): {[string]: any}
```
###### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `?` | `self` | |
| `value` | `T` | |
###### Returns
| Type | Description |
| --- | --- |
| `{\[string\]: any}` | |
##### `decode`
```nupp
decode: function(self, value: {[string]: any}): (T?, string?)
```
###### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `?` | `self` | |
| `value` | `{\[string\]: any}` | |
###### Returns
| Type | Description |
| --- | --- |
| `T?` | |
| `string?` | |
#### Fields
| Name | Type | Description |
| --- | --- | --- |
| `fingerprint` | `string` | |
## Functions
### `compile` _function_
```nupp
local compile: function(info: TypeInfo): Blueprint
```
#### Arguments
| Name | Type | Description |
| --- | --- | --- |
| `info` | `TypeInfo` | |
#### Returns
| Type | Description |
| --- | --- |
| `Blueprint` | |