blue.moji.richtext.facet

moji.blue

Documentation

SECURITY: did/name/formats/adultOnly/labels are all self-attested by the posting client at write time and are not re-validated by the PDS. Consumers that render an image from this facet without first verifying it against the referenced blue.moji.collection.item record (e.g. via an AppView's blue.moji.collection.getItem, hydrated from firehose-verified data) are trusting the poster to have told the truth about whose emoji it is, what it looks like, and whether it needs a content warning. In particular, adultOnly/labels here MUST NOT be trusted for moderation decisions — a poster could simply omit them to bypass a warning the source item's own record carries. Verified renderers should use the source item's adultOnly/labels instead. Renderers that skip verification SHOULD treat the facet as decorative/best-effort only, exactly as they would an unverified embed.

main object

SECURITY: did/name/formats/adultOnly/labels are all self-attested by the posting client at write time and are not re-validated by the PDS. Consumers that render an image from this facet without first verifying it against the referenced blue.moji.collection.item record (e.g. via an AppView's blue.moji.collection.getItem, hydrated from firehose-verified data) are trusting the poster to have told the truth about whose emoji it is, what it looks like, and whether it needs a content warning. In particular, adultOnly/labels here MUST NOT be trusted for moderation decisions — a poster could simply omit them to bypass a warning the source item's own record carries. Verified renderers should use the source item's adultOnly/labels instead. Renderers that skip verification SHOULD treat the facet as decorative/best-effort only, exactly as they would an unverified embed.

Properties

adultOnly boolean Optional

Self-attested by the poster; see security note on this object. Verified renderers SHOULD use the source item's adultOnly instead.

alt string Optional

No description available.

did string Required

DID of the user posting the Bluemoji. Self-attested; see security note on this object.

formats union Required

#formats_v0 is deprecated (see RFC 0001); writers MUST produce #formats_v1.

Known types:
labels union Optional

Self-label values for this emoji. Effectively content warnings. Self-attested by the poster; see security note on this object.

name string Required

Name of the Bluemoji in :emoji: format

View raw schema
{
  "type": "object",
  "required": [
    "did",
    "name",
    "formats"
  ],
  "properties": {
    "alt": {
      "type": "string"
    },
    "did": {
      "type": "string",
      "description": "DID of the user posting the Bluemoji. Self-attested; see security note on this object."
    },
    "name": {
      "type": "string",
      "description": "Name of the Bluemoji in :emoji: format"
    },
    "labels": {
      "refs": [
        "com.atproto.label.defs#selfLabels"
      ],
      "type": "union",
      "description": "Self-label values for this emoji. Effectively content warnings. Self-attested by the poster; see security note on this object."
    },
    "formats": {
      "refs": [
        "#formats_v0",
        "#formats_v1"
      ],
      "type": "union",
      "closed": false,
      "description": "#formats_v0 is deprecated (see RFC 0001); writers MUST produce #formats_v1."
    },
    "adultOnly": {
      "type": "boolean",
      "default": false,
      "description": "Self-attested by the poster; see security note on this object. Verified renderers SHOULD use the source item's adultOnly instead."
    }
  },
  "description": "SECURITY: did/name/formats/adultOnly/labels are all self-attested by the posting client at write time and are not re-validated by the PDS. Consumers that render an image from this facet without first verifying it against the referenced blue.moji.collection.item record (e.g. via an AppView's blue.moji.collection.getItem, hydrated from firehose-verified data) are trusting the poster to have told the truth about whose emoji it is, what it looks like, and whether it needs a content warning. In particular, adultOnly/labels here MUST NOT be trusted for moderation decisions — a poster could simply omit them to bypass a warning the source item's own record carries. Verified renderers should use the source item's adultOnly/labels instead. Renderers that skip verification SHOULD treat the facet as decorative/best-effort only, exactly as they would an unverified embed."
}
formats_v0 object

DEPRECATED, corresponds to blue.moji.collection.item#formats_v0. png/webp/gif are CIDs combinable with the facet's did to build a blob/CDN URL; apng_128/lottie are raw Bytes on the source record (not Blob) so are only marked present here as a boolean and require a com.atproto.repo.getRecord round-trip to render.

Properties

apng_128 boolean Optional

No description available.

gif_128 string cid Optional

A content identifier (CID) referencing immutable data.

lottie boolean Optional

No description available.

png_128 string cid Optional

A content identifier (CID) referencing immutable data.

webp_128 string cid Optional

A content identifier (CID) referencing immutable data.

View raw schema
{
  "type": "object",
  "properties": {
    "lottie": {
      "type": "boolean",
      "default": false
    },
    "gif_128": {
      "type": "string",
      "format": "cid"
    },
    "png_128": {
      "type": "string",
      "format": "cid"
    },
    "apng_128": {
      "type": "boolean",
      "default": false
    },
    "webp_128": {
      "type": "string",
      "format": "cid"
    }
  },
  "description": "DEPRECATED, corresponds to blue.moji.collection.item#formats_v0. png/webp/gif are CIDs combinable with the facet's did to build a blob/CDN URL; apng_128/lottie are raw Bytes on the source record (not Blob) so are only marked present here as a boolean and require a com.atproto.repo.getRecord round-trip to render."
}
formats_v1 object

Only the CID is provided; combine with the facet's did to construct a blob/CDN URL with no additional round-trip. All formats, including animated ones, are CIDs of Blob-typed values on the source record.

Properties

apng_128 string cid Optional

A content identifier (CID) referencing immutable data.

gif_128 string cid Optional

A content identifier (CID) referencing immutable data.

lottie string cid Optional

A content identifier (CID) referencing immutable data.

png_128 string cid Optional

A content identifier (CID) referencing immutable data.

webp_128 string cid Optional

A content identifier (CID) referencing immutable data.

View raw schema
{
  "type": "object",
  "properties": {
    "lottie": {
      "type": "string",
      "format": "cid"
    },
    "gif_128": {
      "type": "string",
      "format": "cid"
    },
    "png_128": {
      "type": "string",
      "format": "cid"
    },
    "apng_128": {
      "type": "string",
      "format": "cid"
    },
    "webp_128": {
      "type": "string",
      "format": "cid"
    }
  },
  "description": "Only the CID is provided; combine with the facet's did to construct a blob/CDN URL with no additional round-trip. All formats, including animated ones, are CIDs of Blob-typed values on the source record."
}

Lexicon Garden

@