$schema: ../codegen/schema.yaml
name: ChatMessage
compactName: ChatMessage
uri: "http://litepub.social/ns#ChatMessage"
extends: "https://www.w3.org/ns/activitystreams#Object"
entity: true
description: |
  `ChatMessage`s are the messages sent in 1-on-1 chats.  They are similar to
  {@link Note}s, but the addressing is done by having a single AP actor in
  the `to` field.  Addressing multiple actors is not allowed.  These messages
  are always private, there is no public version of them.  They are created with
  a {@link Create} activity.
defaultContext:
- "https://www.w3.org/ns/activitystreams"
- "https://w3id.org/security/data-integrity/v1"
- toot: "http://joinmastodon.org/ns#"
  misskey: "https://misskey-hub.net/ns#"
  fedibird: "http://fedibird.com/ns#"
  Emoji: "toot:Emoji"
  ChatMessage: "http://litepub.social/ns#ChatMessage"
  quoteUrl: "as:quoteUrl"
  _misskey_quote: "misskey:_misskey_quote"
  quoteUri: "fedibird:quoteUri"
  emojiReactions:
    "@id": "fedibird:emojiReactions"
    "@type": "@id"

properties:
- singularName: quoteUrl
  functional: true
  compactName: quoteUrl
  uri: "https://www.w3.org/ns/activitystreams#quoteUrl"
  redundantProperties:
  - compactName: _misskey_quote
    uri: "https://misskey-hub.net/ns#_misskey_quote"
  - compactName: quoteUri
    uri: "http://fedibird.com/ns#quoteUri"
  description: |
    The URI of the ActivityStreams object that this object quotes.

    This property sets three JSON-LD properties at once under the hood:

    1. https://www.w3.org/ns/activitystreams#quoteUrl
    2. https://misskey-hub.net/ns#_misskey_quote
    3. http://fedibird.com/ns#quoteUri

    When a JSON-LD object is parsed, this property is filled with one of
    the values of those three properties in order.
  range:
  - "fedify:url"
