{
"id": "ai.newnal.trustsquare.socialAccount",
"defs": {
"main": {
"key": "any",
"type": "record",
"record": {
"type": "object",
"required": [
"platform",
"handle",
"method",
"verifiedAt"
],
"properties": {
"handle": {
"type": "string",
"maxLength": 640,
"description": "Normalized handle as shown to readers, including the leading @ where the platform treats it as part of the handle.",
"maxGraphemes": 64
},
"method": {
"type": "string",
"description": "How ownership was established. `mock` is the placeholder until real checks ship.",
"knownValues": [
"mock",
"oauth",
"post-proof"
]
},
"platform": {
"type": "string",
"description": "Must equal the record key.",
"knownValues": [
"youtube",
"facebook",
"x",
"naver"
]
},
"profileUrl": {
"type": "string",
"format": "uri",
"description": "Public profile the handle resolves to."
},
"verifiedAt": {
"type": "string",
"format": "datetime"
}
}
},
"description": "A social account the holder claims as theirs. The record key is the platform id, so a repository can hold at most one account per platform. `method` records how the claim was established: `mock` means it was auto-accepted by the mocked flow and proves nothing, so consumers must not present it as ownership-checked once real methods exist."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}