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

# Memory Types & Models

> Reference for the atomic Enums and Pydantic models used by the MemMachine server.

The server utilizes a standardized set of types and models to ensure that data is validated and typed consistently across the **Service** and **Router** layers. These types are the "Source of Truth" for how the server interprets incoming requests.

## API Enumerations

Enums are used to route logic within the service layer and categorize data in the persistent stores.

### `MemoryType`

Defined in `memmachine_common.api`, this enum determines which store and service logic a request should target.

| Member     | Value        | Description                                            |
| :--------- | :----------- | :----------------------------------------------------- |
| `Episodic` | `"episodic"` | Targets session-based conversational stores.           |
| `Semantic` | `"semantic"` | Targets the structured knowledge graph and tag stores. |

### `EpisodeType`

Used within episodic memory to distinguish between different kinds of events.

| Member    | Value       | Description                                                     |
| :-------- | :---------- | :-------------------------------------------------------------- |
| `MESSAGE` | `"message"` | Represents a standard conversational exchange (User/Assistant). |

***

## Core Specification Models (DTOs)

The server relies on Pydantic models defined in `spec.py` to validate and parse incoming data.

### `MemoryMessage`

The primary unit of ingestion for Episodic memory.

```python theme={null}
class MemoryMessage(BaseModel):
    content: str        # The raw text of the message
    producer: str       # The ID of the human or agent creator
    produced_for: str   # The recipient ID
    timestamp: datetime # Standardized UTC timestamp
    role: str           # e.g., "user", "assistant", or "system"
    metadata: dict      # Custom JSON metadata
```

### `SemanticFeature`

The standardized output format for knowledge retrieved from the Semantic store.

| **Field**         | **Type** | **Description**                                        |
| ----------------- | -------- | ------------------------------------------------------ |
| **`id`**          | `str`    | Unique UUID for the semantic tag.                      |
| **`category_id`** | `str`    | The parent category this tag belongs to.               |
| **`value`**       | `str`    | The actual knowledge value (e.g., "Likes Spicy Food"). |
| **`metadata`**    | `dict`   | Contextual data regarding the source of the knowledge. |

***

## Content and Serialization

### `ContentType` (Enum)

Specifies the format of data stored within an entry.

| **Member** | **Value**  | **Description**                              |
| ---------- | ---------- | -------------------------------------------- |
| `STRING`   | `"string"` | The content is a standard UTF-8 text string. |

<Note> While the current implementation primarily uses `STRING`, the server architecture is designed to support future serialization of vector embeddings or binary objects without altering the core schema. </Note>

***

## Legacy Structures

<Warning> The `GroupConfiguration` and `MemoryContext` objects from v1 are deprecated in the v2 API. The server now uses an **Org/Project/Session** hierarchy for secure data isolation, which is managed via the `_WithOrgAndProj` base model in `spec.py`. </Warning>
