···138138 public let record: UnpopulatedPost?
139139 public let uri: String?
140140 public let cid: String?
141141- public let author: Author?
141141+ public let author: EmbedAuthor?
142142 public let value: EmbedRecordValue?
143143144144 enum CodingKeys: String, CodingKey {
145145 case type = "$type"
146146 case record, uri, cid, author, value
147147 }
148148+}
149149+150150+/// Author view shape used inside embedded records. Bluesky occasionally omits
151151+/// fields like `handle` for blocked, deactivated, or otherwise partially
152152+/// visible accounts, so every field is decoded permissively.
153153+public struct EmbedAuthor: Codable, Sendable {
154154+ public let did: String
155155+ public let handle: String?
156156+ public let displayName: String?
157157+ public let avatar: String?
158158+ public let viewer: Viewer?
159159+ public let labels: [AuthorLabels]?
160160+ public let createdAt: Date?
148161}
149162150163public struct EmbedRecordValue: Codable, Sendable {