# `type.primitive_signature`

Signature uses a built-in type directly.

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

```jadpo
type Title = Text {
    max_length: 200
}

function normalise(value: Text) -> Title {
    return Title(value)
}
```

```text
error: This parameter uses `Text` directly
 --> main.jadpo:5:27
  |
5 | function normalise(value: Text) -> Title {
  |                           ^^^^ a built-in type
  reason: Functions, actions and queries take and return named types, so each value says what it means and carries its rules; `Text` says neither.
  next: Declare a named type built on `Text` and use it here (agent)
  rule: type.primitive_signature
  help: https://jadpo.dev/docs/errors/type.primitive_signature

check failed: 1 error, 1 file
```
