ET /v1/im/favorites/{favorite_id} 返回的是单条收藏详情，当前核心字段大概是这样：
{
  "favorite_id": "fav_demo_19179719768_text",
  "type": "text",
  "snapshot": {
    "topic": "favSeed19179719768",
    "seq": 7001,
    "from": "usr...",
    "ts": "2026-08-25T07:26:06Z",
    "type": "text",
    "head": {},
    "content": {},
    "text": "这是一条收藏的文本消息"
  },
  "source": {
    "topic": "favSeed19179719768",
    "seq": 7001
  },
  "collected_at": "2026-08-25T07:26:06Z",
  "availability": "available"
}
字段说明：
字段	含义
favorite_id	收藏记录 ID，后续详情、删除、转发都用它。
type	收藏类型：text、image、video、voice、file、link。
snapshot	收藏时保存的展示快照。即使原消息后续变化或删除，收藏列表也主要用这个字段渲染。
source.topic	原始消息所在会话 Topic。
source.seq	原始消息在该 Topic 下的消息序号。
collected_at	收藏时间，ISO/RFC3339 时间格式。
availability	当前可用状态，通常是 available；如果原资源被合规删除或失效，可能返回 removed 等状态。


snapshot 里面比较重要：
字段	含义
snapshot.topic	原消息 Topic。
snapshot.seq	原消息 seq。
snapshot.from	原消息发送人。
snapshot.ts	原消息发送时间。
snapshot.type	消息类型。通常和外层 type 一致。
snapshot.head	原消息头部扩展，比如 mime、x-im-type 等。
snapshot.content	原消息内容。文本、文件、图片、语音、链接等具体展示数据一般在这里。
snapshot.text	服务端提取出的纯文本摘要，方便列表搜索和预览展示。


前端一般列表页用外层 type + snapshot + collected_at + availability 渲染；点开详情时，如果是文件/图片/视频/语音，再根据 snapshot.content.file_id、thumbnail_file_id 等字段去走文件下载/预览逻辑。