> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superwire.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Operators and Special Forms

> Dot access, model usage, tool calls, and inline separators.

## Dot access

Use dot access to read nested fields.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
input.project_id
agent.summarize.summary
schema.shared.status
model.fast
```

## Array pluck

Use `.*.` to read a field from every item in an array.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
input.attachments.*.video_url
```

This turns an array into an array of field values. Missing fields, non-object items, and null values become `null`. If a plucked field is itself an array, the result is flattened one level.

Use `.**.` to drop null plucked values, or `.***.` to require all plucked values to be non-null and the same runtime type.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
agent video_summarizer for video_url in dynamic.video_recording_answers.answers.*.url {
    instruction: "Summarize {{ video_url }}"
}
```

## Model usage

Agents reference named model profiles.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
model: model.fast
```

Model inference overrides can be placed in a block after the model reference.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
model: model.fast {
    inference {
        temperature: 0.2
        max_tokens: 1000
    }
}
```

## Tool calls

Tool calls use `bindings {}` for runtime values.

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
call tool.fetch_task {
    bindings {
        task_id: input.task_id
    }
}
```

## Inline separators

Use commas for inline arrays, tuples, objects, and enums:

```wire theme={"languages":{"custom":["/languages/wire.tmLanguage.json"]}}
["a", "b", "c"]
(string, number)
{ title: string, score: number }
enum { draft, ready, published }
```

When object or enum entries are on separate lines, commas are not required.
