﻿<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "RFC2629.dtd"[]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="no"?>
<?rfc toc="yes"?>
<?rfc tocdepth="2"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc inline="yes"?>
<?rfc topblock="yes" ?>
<?rfc autobreaks="yes" ?>

<rfc category="exp" docName="draft-crocker-inreply-react-06" ipr="trust200902" submissionType="IETF">

    <front>
        <title abbrev="react">React: Indicating Summary Reaction to a Message</title>

        <author fullname="Dave Crocker" initials="D." surname="Crocker">
            <organization>Brandenburg InternetWorking</organization>
            <address>
                <email>dcrocker@bbiw.net</email>
            </address>
        </author>

        <author fullname="Ricardo Signes" initials="R." surname="Signes">
            <organization>Fastmail</organization>
            <address>
                <email>rjbs@semiotic.systems</email>
            </address>
        </author>

        <author fullname="Ned Freed" initials="N." surname="Freed">
            <organization>Oracle</organization>
            <address>
                <email>ned.freed@mrochek.com</email>
            </address>
        </author>

        <date year="2021"/>
        <area>Applications and Real-Time</area>
        <workgroup/>

        <keyword>reaction</keyword>
        <keyword>emoji</keyword>
        <keyword>social networking</keyword>
        <keyword>email</keyword>
        <keyword>affect</keyword>
        <keyword>messaging</keyword>
        <keyword>emoticon</keyword>
        <keyword>smileys</keyword>
        <keyword>like</keyword>
        <keyword>mime</keyword>
        <keyword>reply</keyword>

        <abstract>
            <t>The popularity of social media has led to user comfort with easily signaling basic reactions to
                an author's posting, such as with a 'thumbs up' or 'smiley' graphic. This specification
                permits a similar facility for Internet Mail.</t>
        </abstract>
    </front>

    <middle>
        <section title="Introduction">
            <t>The popularity of social media has led to user comfort with easily signaling summary reactions
                to an author's posting, by marking basic emoji graphics, such as with a 'thumbs up', 'heart',
                or 'smiley' indication. Sometimes the permitted repertoire is constrained to a small set and
                sometimes a more extensive range of indicators is supported. </t>

            <t> This specification defines a similar facility for Internet Mail.</t>

            <t>While it is already possible to include symbols and graphics as part of an email reply's
                content, there has not been an established means of signalling the semantic substance that
                such data are to be taken as a summary 'reaction' to the original message. That is, a
                mechanism to identify symbols as specifically providing a summary reaction to the cited
                message, rather than merely being part of the free text in the body of a response. Such a
                structured use of the symbol(s) allows recipient MUAs to correlate this reaction to the
                original message and possibly to display the information distinctively.</t>

            <t>This facility defines a new MIME Content-Disposition, to be used in conjunction with the
                In-Reply-To header field, to specify that a part of a message containing one or more emojis be
                treated as a summary reaction to a previous message.</t>

            <t>Unless provided here, terminology, architecture and specification used in this document are
                incorporated from <xref target="Mail-Arch"/>, <xref target="Mail-Fmt"/>, <xref target="MIME"
                />, and <xref target="ABNF"/>. The ABNF rule Emoji-Seq is inherited from <xref
                    target="Emoji-Seq"/>.</t>

            <t>Discussion of this specification should take place on the ietf-822@ietf.org mailing list.</t>

            <t>Normative language, per <xref target="RFC8174"/>: <list>
                    <t>In many IETF documents, several words, when they are in all capitals as shown below,
                        are used to signify the requirements in the specification. These capitalized words can
                        bring significant clarity and consistency to documents because their meanings are well
                        defined. This document defines how those words are interpreted in IETF documents when
                        the words are in all capitals.</t>
                    <t><list style="symbols">

                            <t>These words can be used as defined here, but using them is not required.
                                Specifically, normative text does not require the use of these key words. They
                                are used for clarity and consistency when that is what's wanted, but a lot of
                                normative text does not use them and is still normative.</t>

                            <t>The words have the meanings specified herein only when they are in all
                                capitals.</t>

                            <t>When these words are not capitalized, they have their normal English meanings
                                and are not affected by this document.</t>
                        </list></t>
                    <t>Authors who follow these guidelines should incorporate this phrase near the beginning
                        of their document:</t>

                    <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD
                        NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to
                        be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they
                        appear in all capitals, as shown here.</t>
                </list></t>


        </section>

        <section title="Reaction Content-Disposition" anchor="contentreact">
            <t>A message sent as a reply MAY include a part containing: <figure>
                    <artwork type="ABNF">Content-Disposition: Reaction </artwork>
                </figure> If such a field is specified the content-type of the part MUST be: <figure>
                    <artwork>Content-Type: text/plain; charset=utf-8</artwork>
                </figure>
                <figure>
                    <preamble>The content of this part is restricted to single line of emoji. The <xref
                            target="ABNF"/> is: </preamble>
                    <artwork type="ABNF">part-content =  emoji *(lwsp emoji) CRLF
                                
emoji = emoji_sequence
emoji_sequence = { defined in [Emoji-Seq] }

base-emojis = thumbs-up / thumbs-down / grinning-face / frowning-face / crying-face 

thumbs-up = {U+1F44D}
thumbs-down = {U+1F44E}
grinning-face = {U+1F600}
frowning-face = {U+2639}
crying-face = {U+1F622}</artwork>
                </figure>
            </t>

            <t>The rule emoji_sequence is inherited from <xref target="Emoji-Seq"/>. It permits one or more
                bytes to form a single presentation image.</t>

            <t>The emoji(s) express a recipient's summary reaction to the specific message referenced by the
                accompanying In-Reply-To header field. <xref target="Mail-Fmt"/>.</t>

            <t>Reference to unallocated code points SHOULD NOT be treated as an error; associated bytes SHOULD
                be processed using the system default method for denoting an unallocated or undisplayable code
                point.</t>
        </section>

        <section title="Reaction Message Processing">

            <t>The presentation aspects of reaction processing are necessarily MUA-specific and beyond the
                scope of this specification. In terms of the message itself, a recipient MUA that supports
                this mechanism operates as follows: <list style="numbers">
                    <t>If a received message R contains an In-Reply-To: header-field, check to see if it
                        references a previous message the MUA has sent or received. </t>

                    <t>If R's In-Reply-To: does reference one, then check R's message content for a part with
                        a "reaction" content-disposition at either the outermost level or as part of a
                        multipart at the outermost level.</t>

                    <t>If such a part is found, and the content of the part conforms to the restrictions
                        outlined above, remove the part from the message and process the part as a reaction. </t>

                    <t>Processing terminates if no parts remain in the message. If parts remain process the
                        remaining message content as a reply.</t>

                </list>Again, the handling of a message that has been successfully processed is MUA-specific
                and beyond the scope of this specification.</t>

        </section>

        <section title="Usability Considerations">
            <t>This specification defines a mechanism for the structuring and carriage of information. It does
                not define any user-level details of use. However the design of the user-level mechanisms
                associated with this facility is paramount. This section discusses some issues to
                consider.</t>

            <t><list style="hanging">

                    <t hangText="Creation: ">Because an email environment is different from a typical social
                        media platform, there are significant -- and potentially challenging -- choices in the
                        design of the user interface, to support indication of a reaction. Is the reaction to
                        be sent only to the original author, or should it be sent to all recipients? Should
                        the reaction always be sent in a discrete message containing only the reaction, or
                        should the user also be able to include other message content? (Note that carriage of
                        the reaction in a normal email message enables inclusion of this other content.)</t>

                    <t hangText="Display:">Reaction indications might be more useful when displayed in close
                        visual proximity to the original message, rather than merely as part of an email
                        response thread. </t>
                </list></t>

            <t/>

            <section title="Example Message">
                <t>A simple message exchange might be:<figure>
                        <artwork><![CDATA[To: recipient@example.com
From: author@example.com
Date: Today, 29 February 2021 00:00:00 -800
Message-id: 12345@example.com
Subject: Meeting

Can we chat at 1pm pacific, today?]]></artwork>
                    </figure> with a thumbs-up, affirmative response of:<figure>
                        <artwork><![CDATA[To: author@example.com
From: recipient@example.com
Date: Today, 29 February 2021 00:00:10 -800
Message-id: 12345@example.com
Subject: Meeting
Mime-Version: 1.0 (1.0)
Content-Type: text/plain; charset=utf-8
Content-Disposition: Reaction

{U+1F44E}]]></artwork>
                    </figure> It could, of course, be more elaborate, such as the first of a MIME multipart
                    sequence.</t>
            </section>

            <section title="Example Display">
                <t>Repeating the caution that actual use of this capability requires careful usability design
                    and testing, this section offers simple examples -- which have not been tested -- of how
                    the reaction response might be displayed in a summary list of messages :<list
                        style="hanging">
                        <t hangText="Summary:  ">Summary listings of messages in a folder include columns such
                            as Subject, From, and Date. Another might be added, to show common reactions and a
                            count of how many of them have been received.</t>

                        <t hangText="Message:  ">A complete message is often displayed with a tailored section
                            for header-fields, enhancing the format and showing only selected header fields.
                            It might include one for reactions, again showing the symbol and a count.</t>
                    </list>
                </t>
            </section>

        </section>

        <section title="Security Considerations">
            <t>This specification employs message content that is a strict subset of existing content, and
                thus introduces no new content-specific security considerations.</t>

            <t>This specification defines a distinct label for specialized message content. Processing that
                handles the content differently from other content in the message body might introduce
                vulnerabilities.</t>

        </section>

        <section title="IANA Considerations">

            <t>The React MIME Content-Disposition parameter is registered, per <xref target="RFC2183"/><list
                    style="hanging">
                    <t hangText=" Content-Disposition parameter name:  ">Reaction</t>

                    <t hangText="Allowable values for this parameter:  ">(none)</t>

                    <t hangText=" Description: ">Permit a recipient to respond by signaling basic reactions to
                        an author's posting, such as with a 'thumbs up' or 'smiley' graphic</t>
                </list>
            </t>
        </section>

        <section title="Experimental Goals">
            <t>The basic, email-specific mechanics for this capability are well-established and
                well-understood. Points of concern, therefore, are with market interest and with usability. So
                the questions to answer, while the header field has experimental status are:<list
                    style="symbols">
                    <t>Is there demonstrated interest by MUA developers?</t>
                    <t>If MUA developers add this capability, is it used by authors?</t>
                    <t>Does the presence of the Reaction capability create any operational problems for
                        recipients?</t>
                    <t>Does the presence of the Reaction capability demonstrate additional security
                        issues?</t>
                </list></t>
        </section>

    </middle>

    <back>
        <references title="Normative References">

            <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
                <front>
                    <title> Key words for use in RFCs to Indicate Requirement Levels </title>
                    <author initials="S." surname="Bradner" fullname="S. Bradner">
                        <organization/>
                    </author>
                    <date year="1997" month="March"/>
                    <abstract>
                        <t> In many standards track documents several words are used to signify the
                            requirements in the specification. These words are often capitalized. This
                            document defines these words as they should be interpreted in IETF documents. This
                            document specifies an Internet Best Current Practices for the Internet Community,
                            and requests discussion and suggestions for improvements. </t>
                    </abstract>
                </front>
                <seriesInfo name="BCP" value="14"/>
                <seriesInfo name="RFC" value="2119"/>
                <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            </reference>

            <reference anchor="RFC2183" target="https://www.rfc-editor.org/info/rfc2183">
                <front>
                    <title> Communicating Presentation Information in Internet Messages: The
                        Content-Disposition Header Field </title>
                    <author initials="R." surname="Troost" fullname="R. Troost">
                        <organization/>
                    </author>
                    <author initials="S." surname="Dorner" fullname="S. Dorner">
                        <organization/>
                    </author>
                    <author initials="K." surname="Moore" fullname="K. Moore" role="editor">
                        <organization/>
                    </author>
                    <date year="1997" month="August"/>
                    <abstract>
                        <t> This memo provides a mechanism whereby messages conforming to the MIME
                            specifications [RFC 2045, RFC 2046, RFC 2047, RFC 2048, RFC 2049] can convey
                            presentational information. It specifies the "Content- Disposition" header field,
                            which is optional and valid for any MIME entity ("message" or "body part").
                            [STANDARDS-TRACK] </t>
                    </abstract>
                </front>
                <seriesInfo name="RFC" value="2183"/>
                <seriesInfo name="DOI" value="10.17487/RFC2183"/>
            </reference>

            <reference anchor="ABNF">
                <front>
                    <title>Augmented BNF for Syntax Specifications: ABNF</title>
                    <author fullname="D. Crocker" initials="D." surname="Crocker">
                        <organization>Brandenburg InternetWorking</organization>
                    </author>
                    <author surname="Overell" initials="P." fullname="P. Overell">
                        <organization>THUS plc</organization>
                    </author>
                    <date year="2008" month="January"/>
                </front>
                <seriesInfo name="RFC" value="5234"/>
            </reference>

            <!--            <reference anchor="Emoji-List">
                <front>
                    <title>Full Emoji List, v13.0</title>
                    <author>
                        <organization>Unicode Consortium</organization>
                        <address>
                            <phone>+1-408-401-8915</phone>
                            <uri>https://home.unicode.org/</uri>
                        </address>

                    </author>
                    <date/>
                </front>
                <seriesInfo name="WEB" value="https://unicode.org/emoji/charts/full-emoji-list.html"
                />
            </reference>-->

            <reference anchor="Emoji-Seq">
                <front>
                    <title> Unicode® Technical Standard #51: Unicode Emoji</title>
                    <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
                        <organization>Google, Inc.</organization>
                    </author>
                    <author fullname="P. Edberg" initials="P." role="editor" surname="Edberg.">
                        <organization>Apple, Inc</organization>
                    </author>
                    <date day="18" month="September" year="2020"/>
                </front>
                <seriesInfo name="WEB" value="http://www.unicode.org/reports/tr51/#def_emoji_sequence"/>
            </reference>

            <reference anchor="Mail-Fmt">
                <front>
                    <title>Internet Message Format</title>

                    <author fullname="Peter W.  Resnick" initials="P." role="editor" surname="Resnick">
                        <organization> Qualcomm Incorporated </organization>
                    </author>

                    <date month="October" year="2008"/>
                </front>

                <seriesInfo name="RFC" value="5322"/>
            </reference>

            <reference anchor="Mail-Arch">
                <front>
                    <title>Internet Mail Architecture</title>
                    <author fullname="D. Crocker" initials="D." surname="Crocker">
                        <organization>Brandenburg InternetWorking</organization>
                    </author>
                    <date year="2009" month="July"/>
                </front>
                <seriesInfo name="RFC" value="5598"/>
            </reference>

            <!--           <reference anchor="Mail-Hdrs">
                <front>
                    <title>Common Internet Message Headers</title>
                    <author fullname="J. Palme" initials="J." surname="Palme">
                        <organization>Stockholm University/KTH</organization>
                    </author>
                    <date month="February" year="1997"/>
                </front>
                <seriesInfo name="RFC" value="2076"/>
            </reference>-->

            <reference anchor="MIME">
                <front>
                    <title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message
                        Bodies</title>
                    <author fullname="N. Freed" initials="N." surname="Freed">
                        <organization>Innosoft</organization>
                    </author>
                    <author fullname="N. Borenstein" initials="N." surname="Borenstein">
                        <organization>First Virtual</organization>
                    </author>
                    <date month="November" year="1996"/>
                </front>
                <seriesInfo name="RFC" value="2045"/>
            </reference>

            <!--<reference anchor="MIME-Enc">
                <front>
                    <title>MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header
                        Extensions for Non-ASCII Text</title>
                    <author fullname="K. Moore" initials="K." surname="Moore">
                        <organization>University of Tennessee</organization>
                    </author>
                    <date month="November" year="1996"/>
                </front>
                <seriesInfo name="RFC" value="2047"/>
            </reference>-->

            <!--            <reference anchor="IANA">
                <front>
                    <title>Guidelines for Writing an IANA Considerations Section
                        in RFCs</title>
                    <author fullname="M. Cotton" initials="" surname="M. Cotton"/>
                    <author fullname="B. Leiba" initials="" surname="B. Leiba"/>
                    <author fullname="T. Narten" initials="" surname="T. Narten"/>
                    <date year="2017"/>
                </front>
                <seriesInfo name="I-D"
                    value="draft-leiba-cotton-iana-5226bis-11"/>
            </reference>-->

            <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
                <front>
                    <title> Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words </title>
                    <author initials="B." surname="Leiba" fullname="B. Leiba">
                        <organization/>
                    </author>
                    <date year="2017" month="May"/>
                    <abstract>
                        <t> RFC 2119 specifies common key words that may be used in protocol specifications.
                            This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage
                            of the key words have the defined special meanings. </t>
                    </abstract>
                </front>
                <seriesInfo name="BCP" value="14"/>
                <seriesInfo name="RFC" value="8174"/>
                <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            </reference>

        </references>

        <!--<references title="Informative References">

            

        </references>-->

        <section title="Acknowledgements">
            <t>This specification has been discussed in the ietf-822 mailing list. Active commentary and
                suggestions were offered by: Nathaniel Borenstein, Richard Clayton, Ned Freed, Bron Gondwana,
                Valdis Klētnieks, John Levine, Brandon Long, Keith Moore, Pete Resnick, Michael Richardson,
                Alessandro Vesely</t>
        </section>

    </back>

</rfc>
