From
bafyreif2nri3cy2g6h6jadd7jgvugkxt7uthygdjc2fffn6ysci63c7nka
indexed 2026-07-28 17:08 UTC
View this version
To
bafyreig3nuflaeupr4aqas5xmmjtcqeb2c6oyxsw3ytugzitsb26vkyb44
indexed 2026-09-08 19:36 UTC
View this version
Compatibility
backward compatible No changes detected.
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Single overwritten record: per-user UI/drill preferences. The payload is an opaque JSON string so preferences expand without a lexicon change. rkey is literally `self`.",66
"key": "literal:self",77
"record": {88
"properties": {99
"settings": {10
"description": "Stringified JSON the app owns. Current preference keys: direction (genko|hanko|ma), glyphScale, candCount (3|4|6), showTimer, dark, skewToFailingMode, autoAdvanceSecs. It also carries two non-preference markers, which ride this record because it is the only schema-free singleton: onboardedSeeds (every seed pack id the account has ever onboarded) and newestAppVersion (forward-only high-water mark of the newest app build that loaded the account). Unknown keys are round-tripped rather than dropped, so an older build does not silently wipe a newer one's — within bounds: the capture is capped (key count, serialized length, per-key name screens) and anything over is dropped with a warning. The lexicon deliberately does not constrain the shape.",10
"description": "Stringified JSON the app owns. Current preference keys: direction (genko|hanko|ma), glyphScale, candCount (3|4|6), showTimer, dark, skewToFailingMode, autoAdvanceSecs, furigana (below|ruby), fontVariety (off|on), writingMode (horizontal|vertical). It also carries two non-preference markers, which ride this record because it is the only schema-free singleton: onboardedSeeds (every seed pack id the account has ever onboarded) and newestAppVersion (forward-only high-water mark of the newest app build that loaded the account). Unknown keys are round-tripped rather than dropped, so an older build does not silently wipe a newer one's — within bounds: the capture is capped (key count, serialized length, per-key name screens) and anything over is dropped with a warning. The lexicon deliberately does not constrain the shape.",1111
"type": "string"1212
},1313
"updatedAt": {1414
"format": "datetime",1515
"type": "string"1616
}1717
},1818
"required": [1919
"updatedAt",2020
"settings"2121
],2222
"type": "object"2323
},2424
"type": "record"2525
}2626
},2727
"id": "at.kotoba.prefs",2828
"lexicon": 12929
}