at.kotoba.stats
Single overwritten record: an incremental rollup of the session history, so a normal load doesn't have to cursor-walk every session ever recorded (#16). rkey is literally `self`.
Details · record, key literal:self
| Kind | record |
|---|---|
| Record key | literal:self |
| Authority | kotoba.at |
| Indexed |
Checks
Validunlimited-stringdefs.main.record.properties.lastActiveDateNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.lastDrilledPackRefNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.watermarkNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Single overwritten record: an incremental rollup of the session history, so a normal load doesn't have to cursor-walk every session ever recorded (#16). rkey is literally `self`.",
"key": "literal:self",
"record": {
"properties": {
"currentStreak": {
"minimum": 0,
"type": "integer"
},
"lastActiveDate": {
"description": "YYYY-MM-DD of the most recent session folded in; combined with currentStreak to decide at display time whether the streak is still current.",
"type": "string"
},
"lastDrilledAt": {
"description": "endedAt of the session lastDrilledPackRef came from, so folding a batch of sessions can tell which one was actually most recent.",
"format": "datetime",
"type": "string"
},
"lastDrilledPackRef": {
"description": "at:// uri of the pack from the most recently *drilled* session that carried a packRef, so the home screen can default to it instead of the newest upload (#51).",
"type": "string"
},
"totalCards": {
"minimum": 0,
"type": "integer"
},
"totalCorrect": {
"minimum": 0,
"type": "integer"
},
"totalSessions": {
"minimum": 0,
"type": "integer"
},
"updatedAt": {
"format": "datetime",
"type": "string"
},
"watermark": {
"description": "rkey of the newest at.kotoba.session record folded into this summary so far; empty string if none yet. Session rkeys are TID (time-ordered), so a single watermark rkey is enough to resume folding only newer sessions.",
"type": "string"
}
},
"required": [
"updatedAt",
"watermark",
"totalSessions",
"totalCards",
"totalCorrect",
"currentStreak",
"lastActiveDate"
],
"type": "object"
},
"type": "record"
}
},
"id": "at.kotoba.stats",
"lexicon": 1
}