First of all, all PDU definitions were based on the v1 PDU definition with a few fields overwritten to change the format with needed. While that works when rendering the spec, this is semantically incorrect because it means that the objects must match both schemas, which is impossible. So now we make a base with only the common fields, and we add the others as needed by the room version. Note that there is no more "unsigned PDU" definition since it is not used directly, and hashes and signatures are the same across all versions. Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
66 lines
1.5 KiB
Markdown
66 lines
1.5 KiB
Markdown
---
|
|
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" %}}
|
|
|
|
### Authorization rules
|
|
|
|
{{% rver-fragment name="v1-auth-rules" %}}
|
|
|
|
### Canonical JSON
|
|
|
|
{{% rver-fragment name="v1-canonical-json" %}}
|