Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSC3954: Extensible Events - Text Emotes #3954

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Extensible events: Emotes
  • Loading branch information
turt2live committed Jan 13, 2023
commit 178e320d6f1cbec2a6c6d6dfa5dfee12147838c2
49 changes: 49 additions & 0 deletions proposals/3954-extensible-events-emotes.md
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TheArcaneBrony says:

Perhaps we could rename this to something like "m.action"? I've always found it kinda weird to call it an "emote" when 99% of the time this has nothing to do with emotions, but is rather used to represent mentioning an action in third person. (Eg. "Bob is thinking", "Alice is reading", ...)

Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# MSC3954: Extensible Events - Text Emotes

[MSC1767](https://github.com/matrix-org/matrix-doc/pull/1767) describes Extensible Events in detail,
though deliberately does not include schemas for some messaging types. This MSC covers a replacement
for the `m.emote` `msgtype` specifically.

*Rationale*: Splitting the MSCs down into individual parts makes it easier to implement and review in
stages without blocking other pieces of the overall idea. For example, an issue with the way emotes
are represented should not block the overall schema from going through.

## Proposal

MSC1767 allows for regular, non-emotive, text to be sent with an `m.message` event type and `m.markup`
content block. This MSC simply introduces a new `m.emote` event type taking a **required** `m.markup`
content block, enabling emotes in rooms supporting extensible events.

An example:

```json5
{
// irrelevant fields not shown
"type": "m.emote",
"content": {
"m.markup": [{"body": "says hi"}]
}
}
```

## Potential issues

No significant issues known.

## Alternatives

It may be more desirable to create an emote mixin, however that raises questions like "what does it mean
to emote a poll". For simplicity, or at least until a use case arises, this MSC aims to directly replace
the `m.emote` `msgtype` instead - a future MSC can expand support for the feature.

## Security considerations

No specific considerations are required for this proposal.

## Unstable prefix

While this MSC is not considered stable, implementations should use `org.matrix.msc1767.*` as a prefix in
place of `m.*` throughout this proposal. Note that this uses the namespace of the parent MSC rather than
the namespace of this MSC - this is deliberate.

Note that extensible events should only be used in an appropriate room version as well.