# MessageRow

Package: `@threadplane/content/messages` · 0.0.0

**Unpublished development API.**

Reference: /docs/api/content/messages/MessageRow

```typescript
import type { MessageRow } from '@threadplane/content/messages';
```

## MessageRow

One transcript row. Unchanged rows keep their identity across projections.

```typescript
export interface MessageRow<TTools extends {
    [K in keyof TTools]: ToolContract;
} = Record<string, ToolContract>>  {
  readonly id: string;
  readonly markdown: MarkdownSnapshot;
  readonly message: Message;
  readonly reasoning?: MarkdownSnapshot;
  readonly role: Message['role'];
  readonly toolCalls: readonly ToolCall<TTools>[];
}
```

### id

```typescript
readonly id: string;
```

### markdown

```typescript
readonly markdown: MarkdownSnapshot;
```

### message

```typescript
readonly message: Message;
```

### reasoning

Independently owned backend reasoning; absent for omitted or empty text.

```typescript
readonly reasoning?: MarkdownSnapshot;
```

### role

```typescript
readonly role: Message['role'];
```

### toolCalls

```typescript
readonly toolCalls: readonly ToolCall<TTools>[];
```