# PathAst.QueryParam

One named query key and its literal or parameter value AST.

## Signatures

```ts
type QueryParam = {
    type: "query-param";
    name: string;
    value: PathAst;
};
```

## Why

Query constraints and decoded values use the same route-language representation.

## Ownership and lifetime

`QueryParam` describes plain readonly AST data. Routes and Matchers retain the concrete nodes they receive by reference; the type itself owns no resource.

## Property: name

Input query-string key.

## Property: name: Why

Only named declarations are copied from URL search parameters into decoding input.

## Property: name: Ownership and lifetime

The node retains this immutable string; request-specific values are created during matching.

## Property: type

Discriminates one named query declaration.

## Property: type: Why

Query keys and their value grammar remain one structural unit.

## Property: type: Ownership and lifetime

The literal tag is retained with the plain node and owns no request URL.

## Property: value

Literal, parameter, or wildcard grammar for the query value.

## Property: value: Why

Literal constraints and decoded query fields use the same Path AST vocabulary.

## Property: value: Ownership and lifetime

The child AST is retained by reference and remains owned by the route tree containing it.
