# make

Constructs a Route from a Route AST and lazily memoizes its path and schemas.

## Signatures

```ts
export declare function make<const P extends string, S extends Schema.Codec<any, Path.Params<P>, any, any> = Schema.Codec<Path.Params<P>>>(ast: AST.RouteAst): Route<P, S>;
```

## Why

Advanced builders can preserve the same invariants as built-in route constructors.

## Ownership and lifetime

`make` constructs its Route immediately. The Route retains the supplied AST or route values and lazily memoizes derived paths and Codecs; Codec services are required only when decoding or encoding runs.

## Examples

```ts
import * as Router from "@typed/router"
import { literal, path } from "@typed/router/AST"

const Account = Router.make<"/account">(path(literal("account")))
```
