---
title: Room Version 2
type: docs
weight: 20
version: 2
---

This room version builds on [version 1](/rooms/v1) with an improved
state resolution algorithm.

## Client considerations

There are no client considerations introduced in this room version. Clients
which implement the redaction algorithm locally should refer to the
[redactions](#redactions) section below for a full overview of the algorithm.

## Server implementation components

{{% boxes/warning %}}
The information contained in this section is strictly for server
implementors. Applications which use the Client-Server API are generally
unaffected by the details contained here, and can safely ignore their
presence.
{{% /boxes/warning %}}

Room version 2 uses the base components of [room version 1](/rooms/v1),
changing only the state resolution algorithm.

### State resolution

{{% added-in v=2 %}}

{{% rver-fragment name="v2-state-res" %}}

## Unchanged from v1

The following sections have not been modified since v1, but are included for
completeness.

### Redactions

{{% rver-fragment name="v1-redactions" %}}

### Event IDs

{{% rver-fragment name="v1-event-ids" %}}

### Event format

Events in rooms of this version have the following structure:

{{% definition path="api/server-server/definitions/pdu_v1" %}}

#### Deprecated event content schemas

{{% rver-fragment name="v1-deprecated-formatting-off-spec" %}}

{{% rver-fragment name="v1-stringy-power-levels" %}}

{{% rver-fragment name="v1-floaty-power-levels" %}}

### Authorisation rules

{{% rver-fragment name="v1-auth-rules" %}}

### Canonical JSON

{{% rver-fragment name="v1-canonical-json" %}}
