# ThreadWeaveRequest

A thread to weave. Anything left out takes the loom's default for its kind. The loom refuses a thread that is too long, has a weight outside 0 to 1, or looks like it holds a credential.

**Kind:** an object, used in requests.

## Fields

| Field | Type | Required | Description |
|---|---|---|---|
| `content` | `string` | yes | The thread's words: what to remember. Constraints: required (empty or whitespace-only strings are rejected). |
| `kind` | [`ThreadKind`](https://docs.maitento.com/reference/types/thread-kind.md)`\| null` |  | What kind of memory it is. Absent: `Semantic` (a fact). |
| `weight` | `number \| null` |  | How much it matters, 0 to 1. Absent: 0.6. |
| `foundational` | `boolean \| null` |  | True makes it warp (never frays); false forces weft. Absent: warp only for relational threads. |
| `decayRate` | [`DecayRate`](https://docs.maitento.com/reference/types/decay-rate.md)`\| null` |  | How quickly it frays when unused. Absent: the default for its kind and strand. |
| `subjects` | `string[]` |  | Who or what it is about, as named in conversation. |
| `tags` | `string[]` |  | Free-form tags. |
| `private` | `boolean` |  | True makes it a private note, offered only to the agent that wove it; one woven through the API is offered to no agent. |
| `pinned` | `boolean` |  | True holds it close: always part of what an agent wakes up knowing. |
| `cues` | `string[] \| null` |  | Words (up to three each, at most 8) that bring the thread back when someone says them. |
| `replaces` | `uuid \| null` |  | A thread this one corrects or replaces: it is let go once this is woven, keeping what it said. |
| `until` | `datetime \| null` |  | When it stops holding (a deadline, a plan's day, a reminder that stops mattering); must be in the future. A bare day (`"2026-10-30"`) holds until that day is over, as it does for an agent's `LoomWeave` tool; a time with no zone is UTC. |
| `basis` | [`ThreadBasis`](https://docs.maitento.com/reference/types/thread-basis.md)`\| null` |  | What it rests on: `Said` (default), `Impression` (a reading nobody said) or `Read` (from a document or tool). |

## Example

```json
{
  "content": "...",
  "kind": "Semantic",
  "weight": 0,
  "foundational": false,
  "decayRate": "Normal",
  "subjects": [
    "..."
  ],
  "tags": [
    "..."
  ],
  "private": false,
  "pinned": false,
  "cues": [
    "..."
  ],
  "replaces": "3f2b8c1e-5d4a-4e6b-9c7d-2a1b0c9d8e7f",
  "until": "2026-10-26T12:00:00.0000000Z",
  "basis": "Said"
}
```

## Where it's used

- [`looms.weave`](https://docs.maitento.com/reference/api/looms.md) (`PUT /looms/by-id/{id}/threads`)
