mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-04-28 13:24:10 +02:00
Fix wording round 1
This commit is contained in:
parent
b5b6fd978d
commit
09422a333d
|
|
@ -1877,10 +1877,21 @@ is no plaintext copy). This is to ensure the client's behaviour matches the serv
|
||||||
capability to handle relationships.
|
capability to handle relationships.
|
||||||
{{% /boxes/warning %}}
|
{{% /boxes/warning %}}
|
||||||
|
|
||||||
Improperly formed or structured relationships are simply ignored. For example, the
|
Relationships which don't match the schema, or which break the rules of a relationship,
|
||||||
child and parent events being in different rooms or the relationship missing fields
|
are simply ignored. Such an example might be the parent and child being in different
|
||||||
required by the schema below. The events would appear independent of each other or
|
rooms or the relationship missing properties required by the schema below. The events
|
||||||
optionally with an error message (if rendered/handled by the client exclusively).
|
would appear independent of each other or optionally with an error message (if
|
||||||
|
rendered/handled by the client exclusively).
|
||||||
|
|
||||||
|
{{% boxes/note %}}
|
||||||
|
While this specification describes an `m.relates_to` object containing a `rel_type`, there
|
||||||
|
is not currently any relationship type which uses this structure. Replies, described below,
|
||||||
|
form their relationship outside of the `rel_type` as a legacy type of relationship. Future
|
||||||
|
versions of the specification might change replies to better match the relationship structures.
|
||||||
|
|
||||||
|
Custom `rel_type`s can, and should, still use the schema described above for relevant
|
||||||
|
behaviour.
|
||||||
|
{{% /boxes/note %}}
|
||||||
|
|
||||||
`m.relates_to` is defined as follows:
|
`m.relates_to` is defined as follows:
|
||||||
|
|
||||||
|
|
@ -1888,29 +1899,10 @@ optionally with an error message (if rendered/handled by the client exclusively)
|
||||||
|
|
||||||
#### Relationship types
|
#### Relationship types
|
||||||
|
|
||||||
{{% boxes/note %}}
|
|
||||||
While this specification describes an `m.relates_to` object containing a `rel_type`, there
|
|
||||||
is not currently any relationship type which uses this structure. Replies, described below,
|
|
||||||
form their relationship outside of the `rel_type` in order to allow other, future, relationship
|
|
||||||
types to make use of replies in addition to their normal behaviour.
|
|
||||||
|
|
||||||
Custom `rel_type`s can, and should, still use the schema described above for relevant
|
|
||||||
behaviour.
|
|
||||||
{{% /boxes/note %}}
|
|
||||||
|
|
||||||
This specification describes the following relationship types:
|
This specification describes the following relationship types:
|
||||||
|
|
||||||
* [Rich replies](#rich-replies) (**Note**: does not use `rel_type`).
|
* [Rich replies](#rich-replies) (**Note**: does not use `rel_type`).
|
||||||
|
|
||||||
{{% boxes/note %}}
|
|
||||||
This specification does not currently define any relation type which requires
|
|
||||||
aggregation or has restrictions, however [namespaced](/appendices#identifier-grammar)
|
|
||||||
relationship types might have these restrictions.
|
|
||||||
|
|
||||||
Future versions of this specification are expected to require certain behaviours
|
|
||||||
or aggregation of related events.
|
|
||||||
{{% /boxes/note %}}
|
|
||||||
|
|
||||||
#### Aggregations
|
#### Aggregations
|
||||||
|
|
||||||
{{% added-in v="1.3" %}}
|
{{% added-in v="1.3" %}}
|
||||||
|
|
@ -1934,10 +1926,10 @@ Aggregations are sometimes automatically included by a server alongside the pare
|
||||||
event. This This is known as a "bundled aggregation" or "bundle" for simplicity. The
|
event. This This is known as a "bundled aggregation" or "bundle" for simplicity. The
|
||||||
act of doing this is "bundling".
|
act of doing this is "bundling".
|
||||||
|
|
||||||
When an event is served to the client through the APIs listed below, a `m.relations` field
|
When an event is served to the client through the APIs listed below, a `m.relations` property
|
||||||
is included under `unsigned` if the event has child events which point at it. The `m.relations`
|
is included under `unsigned` if the event has child events which can be aggregated and point
|
||||||
field is an object keyed by `rel_type` and value being the type-specific format for that
|
at it. The `m.relations` property is an object keyed by `rel_type` and value being the type-specific
|
||||||
`rel_type`, also known as the bundle.
|
aggregated format for that `rel_type`, also known as the bundle.
|
||||||
|
|
||||||
For example (unimportant fields not included):
|
For example (unimportant fields not included):
|
||||||
|
|
||||||
|
|
@ -1975,8 +1967,8 @@ For example (unimportant fields not included):
|
||||||
|
|
||||||
Note how the `org.example.possible_annotations` bundle is an array compared to the
|
Note how the `org.example.possible_annotations` bundle is an array compared to the
|
||||||
`org.example.possible_thread` bundle where the server is summarising the state of
|
`org.example.possible_thread` bundle where the server is summarising the state of
|
||||||
the relationship in a single object. Both are valid bundles, and their exact types
|
the relationship in a single object. Both are valid ways to aggregate, and their
|
||||||
depend on the `rel_type`.
|
exact types depend on the `rel_type`.
|
||||||
|
|
||||||
{{% boxes/warning %}}
|
{{% boxes/warning %}}
|
||||||
State events do not currently receive bundled aggregations. This is not
|
State events do not currently receive bundled aggregations. This is not
|
||||||
|
|
@ -2042,10 +2034,14 @@ able to accurately aggregate the events.
|
||||||
#### Relationships API
|
#### Relationships API
|
||||||
|
|
||||||
To retrieve the child events for a parent from the server, the client can call the
|
To retrieve the child events for a parent from the server, the client can call the
|
||||||
following endpoint with relevant information. This endpoint does not aggregate the child
|
following endpoint. The events returned might require local aggregation by the client,
|
||||||
events and is instead paginated: clients can perform local aggregation if needed. This
|
however if those same events have bundles of their own then they should be present. A
|
||||||
allows clients to retrieve child events which do not require aggregation but still make
|
hypothetical example would be retrieving all responses to a thread, and those responses
|
||||||
use of `rel_type`.
|
might have emoji reactions made against them: the client will need to construct the
|
||||||
|
thread itself, but the events in the thread should have a reactions bundle on them.
|
||||||
|
|
||||||
|
The lack of aggregation behaviour allows clients to retrieve child events which don't
|
||||||
|
require aggregation, but do make use of a `rel_type`.
|
||||||
|
|
||||||
This endpoint is particularly useful if the client has lost context on the aggregation for
|
This endpoint is particularly useful if the client has lost context on the aggregation for
|
||||||
a parent event and needs to rebuild/verify it.
|
a parent event and needs to rebuild/verify it.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue