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

MSC3935: Cute Events against social distancing #3935

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

TheOneWithTheBraid
Copy link

@TheOneWithTheBraid TheOneWithTheBraid commented Nov 16, 2022

rendered

Signed-off-by: TheOneWithTheBraid the-one@with-the-braid.cf


FCP-postpone tickyboxes

TheOneWithTheBraid added 2 commits November 16, 2022 13:33
Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
Signed-off-by: TheOneWithTheBraid <the-one@with-the-braid.cf>
@turt2live turt2live marked this pull request as draft November 16, 2022 17:14
@turt2live turt2live changed the title feat: add MSC fo cute events - draft stage MSC3935: Cute Events against social distancing Nov 16, 2022
@turt2live turt2live added proposal A matrix spec change proposal client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. labels Nov 16, 2022
@ghost
Copy link

ghost commented Nov 18, 2022

Hope this turn won't into cold "X send you a hug".

Copy link

@JacksonChen666 JacksonChen666 left a comment

Choose a reason for hiding this comment

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

there's an amount of typos in this file


## Potential issues

This MSC instroduces potential issues in regard of accessibility. They are

Choose a reason for hiding this comment

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

Suggested change
This MSC instroduces potential issues in regard of accessibility. They are
This MSC introduces potential issues in regard of accessibility. They are


## Alternatives

A conscidered alternative to Cute Events are MSC2545 - Image Packs

Choose a reason for hiding this comment

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

Suggested change
A conscidered alternative to Cute Events are MSC2545 - Image Packs
A considered alternative to Cute Events are MSC2545 - Image Packs


## Dependencies

This MSC dos not have any particular dependency.

Choose a reason for hiding this comment

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

Suggested change
This MSC dos not have any particular dependency.
This MSC does not have any particular dependency.


This MSC targets this problem by introducing a new `msgtype` for
`m.room.message` named `m.cute_event`. Cute events should provide fallback
conent as Unicoe Emotes. Suppoted clients can render these events in a special,

Choose a reason for hiding this comment

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

Suggested change
conent as Unicoe Emotes. Suppoted clients can render these events in a special,
content as Unicode Emotes. Supported clients can render these events in a special,

@vrifox
Copy link

vrifox commented Nov 19, 2022

Reminds me of Elements /confetti. :)

## Potential issues

This MSC instroduces potential issues in regard of accessibility. They are
discussed below in the [Security](#Security considerations) section.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
discussed below in the [Security](#Security considerations) section.
discussed below in the [Security](#security-considerations) section.

@LorenDB
Copy link

LorenDB commented Dec 26, 2022

To be honest, this feels like a strange thing to add to the spec, especially considering that not even confetti has been officially added to the spec. While things like confetti can be fun (and I added confetti to nheko recently), I think that it is easy to go overboard with effects like these, and some of these things are best implemented as an unofficial event type (like nic.custom.confetti or io.element.effects.snowfall; this MSC could be converted to something like cf.with-the-braid.cute_event). I'm certainly not trying to be a killjoy, but I want to encourage caution in the number of "frivolous" additions to the spec; I see the spec as something intended more for the essential elements of a system that can then have fun things added.

Maybe there should be an "unofficial spec" created that collects community-created event types that clients can then implement at their leisure instead of (potentially) feeling pressured to implement fancy effects like these that have been added to the spec.

@LorenDB
Copy link

LorenDB commented Dec 26, 2022

Maybe there should be an "unofficial spec" created that collects community-created event types that clients can then implement at their leisure instead of (potentially) feeling pressured to implement fancy effects like these that have been added to the spec.

I have now created one at https://lorendb.github.io/unofficial-matrix-spec/. Use https://matrix.directory instead. It turns out there is no place for this right now :(

@turt2live
Copy link
Member

It looks like this MSC didn't get added to the tracking boards we use to avoid forgetting about MSCs, sorry. That said, I generally agree that this should wait until we have a formal "event registry" or similar. The first step towards that is #3587 (which needs to be migrated to the new repo 😇), then an MSC to describe how governance around random event types works.

@mscbot fcp postpone

@mscbot
Copy link
Collaborator

mscbot commented Nov 27, 2023

Team member @turt2live has proposed to postpone this. The next step is review by the rest of the tagged people:

Once at least 75% of reviewers approve (and there are no outstanding concerns), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

See this document for information about what commands tagged team members can give me.

@mscbot mscbot added proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. disposition-postpone An MSC that has been postponed labels Nov 27, 2023

The specified type is contained in the event's content under the key `type`.

The `body` MUST contain a fallback for unsupported clients as Unicode Emote.
Copy link
Member

Choose a reason for hiding this comment

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

Seems like this might get a different representation under Extensible Events. Maybe something like

{
    "type": "m.cute_event",
    "content": {
        "m.cute_event": {
            "type": "googly_eyes",
        },
        "m.text": [
            {"body": "👀"}
        ]
    }
}

Copy link
Member

Choose a reason for hiding this comment

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

This really feels like a perfect use case for extensible events. Would it be too much to suggest building on that rather than having to implement it and then adapt it later? It also saves clarifying that this is an optional feature: with extensible events rendering the text fallback is always a perfectly acceptable option.

Copy link
Member

Choose a reason for hiding this comment

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

yeah, while reading this MSC, i really thought that this is screaming out to be implemented extensible events.

I also think that 'cute events' are actually a useful feature in general - e.g. for bridging to iMessage, for recommending special effects to be applied to event presentation.

I don't think we should block this on an "event registry" though. Instead, I suspect the best way to proceed on this would be to:

a) turn it into extensible events (i.e. have an m.effect mix-in)
b) specify some effects based on whatever fluffychat + element + imessage does already today:

...and in future introduce a registry so people can rack up a common language for future effects.


## Potential issues

This MSC instroduces potential issues in regard of accessibility. They are
Copy link
Member

Choose a reason for hiding this comment

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

I'm finding this section quite weird. If they're a11y issues, I'd put them here. If they're security issues, I'd just put 'None foreseen' or something here and put them in the security section?


## Dependencies

This MSC dos not have any particular dependency.
Copy link
Member

Choose a reason for hiding this comment

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

What do you mean by 'particular' here? I think it just has no dependencies, full stop?


The specified type is contained in the event's content under the key `type`.

The `body` MUST contain a fallback for unsupported clients as Unicode Emote.
Copy link
Member

Choose a reason for hiding this comment

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

This really feels like a perfect use case for extensible events. Would it be too much to suggest building on that rather than having to implement it and then adapt it later? It also saves clarifying that this is an optional feature: with extensible events rendering the text fallback is always a perfectly acceptable option.

The initial implementation is found in the
[Matrix Dart SDK](https://gitlab.com/famedly/company/frontend/famedlysdk/-/merge_requests/1168),
prefixed as: `im.fluffychat.cute_event`. An
[open MR for FluffyChat](https://gitlab.com/famedly/fluffychat/-/merge_requests/1031) exists.
Copy link
Member

Choose a reason for hiding this comment

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

These links needs updating

social distance by sending Cute Events: Googly Eyes, Hugs and Cuddles.*

This MSC targets this problem by introducing a new `msgtype` for
`m.room.message` named `m.cute_event`. Cute events should provide fallback
Copy link
Member

Choose a reason for hiding this comment

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

Cute events are cute but this feels like it could probably have a wider scope and include stuff that isn't necessarily just... cute? I don't know what a better name would be though, possibly because I'm not quite imagining what might actually happen in the client other than an animated sticker or something (at which point we're into your alternative).

Btw, a gif of fluffychat rendering one of these events would feel useful and entirely appropriate to put in the MSC description, personally.

Copy link

@gabrc52 gabrc52 Mar 29, 2024

Choose a reason for hiding this comment

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

Maybe something like "visual effect", "emote" or "emotion"? "Event" might be redundant since we already know it is inside an event.

@mscbot
Copy link
Collaborator

mscbot commented Mar 27, 2024

🔔 This is now entering its final comment period, as per the review above. 🔔

@mscbot mscbot added final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. and removed proposed-final-comment-period Currently awaiting signoff of a majority of team members in order to enter the final comment period. labels Mar 27, 2024
@mscbot
Copy link
Collaborator

mscbot commented Apr 1, 2024

The final comment period, with a disposition to postpone, as per the review above, is now complete.

@mscbot mscbot added finished-final-comment-period and removed final-comment-period This MSC has entered a final comment period in interest to approval, postpone, or delete in 5 days. disposition-postpone An MSC that has been postponed labels Apr 1, 2024
@turt2live
Copy link
Member

For clarity: this is postponed until Extensible Events progresses further, either with an event registry or a more complete base system is usable. The proposal will be re-evaluated at that point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client-server Client-Server API kind:feature MSC for not-core and not-maintenance stuff needs-implementation This MSC does not have a qualifying implementation for the SCT to review. The MSC cannot enter FCP. proposal A matrix spec change proposal proposal-postponed
Projects
Status: Done to some definition
Development

Successfully merging this pull request may close these issues.