{
  "lexicon": 1,
  "id": "space.polymodel.actor.defs",
  "defs": {
    "profileView": {
      "type": "object",
      "description": "Polymodel actor profile view (union variant). Hydrated from the space.polymodel.actor.profile record plus SQLite-derived stats (thingCount, totalLikes). Returned when the actor authored a polymodel profile record; otherwise getProfile returns the app.bsky.actor.defs#profileViewDetailed variant.",
      "required": ["did", "handle", "record"],
      "properties": {
        "did": { "type": "string", "format": "did" },
        "handle": { "type": "string" },
        "displayName": { "type": "string" },
        "description": { "type": "string" },
        "avatar": { "type": "string", "format": "uri", "description": "Resolved avatar URL (CDN). Null until the app view resolves the polymodel profile avatar blob." },
        "record": { "type": "unknown", "description": "The raw space.polymodel.actor.profile record." },
        "defaultLicense": { "type": "string" },
        "pronouns": { "type": "string" },
        "printers": { "type": "array", "items": { "type": "string" } },
        "links": { "type": "array", "items": { "type": "string", "format": "uri" } },
        "thingCount": { "type": "integer" },
        "totalLikes": { "type": "integer" },
        "indexedAt": { "type": "string", "format": "datetime" }
      }
    },
    "profileViewUnion": {
      "type": "union",
      "description": "Discriminates a polymodel-native actor (space.polymodel.actor.defs#profileView, hydrated from the local profile record + stats) from a bluesky-only actor (app.bsky.actor.defs#profileViewDetailed, fetched from the public AppView). Clients render based on $type.",
      "refs": [
        "space.polymodel.actor.defs#profileView",
        "app.bsky.actor.defs#profileViewDetailed"
      ],
      "closed": true
    }
  }
}
