# `type.nullable_selection`

Field is read from a value that may be none.

Area 2, [Values and types](../topics/values-and-types.md); not declinable; the next step is usually the agent's.

```jadpo
type ProductName = Text {
    max_length: 120
}

type Product = Object {
    name: ProductName
}

function listed_name(product: Product?) -> ProductName {
    return product.name
}
```

```text
error: `product` may be `none`, so `name` can't be read yet
 --> main.jadpo:10:20
   |
10 |     return product.name
   |                    ^^^^ may be `none`
  reason: `product` is `Product?`; a field is read once `match` has found a value.
  next: Match on `product` and read `name` inside `some(...)` (agent)
  rule: type.nullable_selection
  help: https://jadpo.dev/docs/errors/type.nullable_selection

check failed: 1 error, 1 file
```
