full diff

at.kotoba.state

kotoba.at +1 −1
From
bafyreieds2qr7hj7c773e2trmm3etptdicr4gf5adaivmeg674xb3s6jhe indexed 2026-09-16 19:18 UTC View this version
To
bafyreifsfkv7r7uryid5wubxg6qv3uecmgysrq3fkh4sjbufrpzqb6rhnu indexed 2026-10-15 09:08 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-glyph SRS state + the directed confusion map. Read once at startup; overwritten on flush. rkey is literally `self`.",
66 "key": "literal:self",
77 "record": {
88 "properties": {
99 "confusion": {
1010 "description": "Directed, single-kana only: shown glyph -> { answered-as romaji: count }. Counts are decayed (x0.9/session) so the app stores them as fixed-point ×10000 INTEGERS (no float type). `unknown` map; the app owns the value scaling at the record edge.",
1111 "type": "unknown"
1212 },
1313 "glyphs": {
14 "description": "Map keyed by glyph -> { box:int, kanji:{box:int,seen:int}, lastSeen:str, modes:{ tap:{seen,missed,ewmaParseMs|null}, type:{seen,missed,ewmaParseMs|null}, meaning:{seen,missed,ewmaParseMs|null} } }. Per-mode success + latency; `box` is kana-reading recall and `kanji` is the separate ruby-bearing written-form recognition ladder (#171). `meaning` (word -> gloss) only ever accrues for glossed word glyphs. All-integer. A missing mode row reads as empty; a missing `kanji` lane reads cold; legacy flat records ({box,ewmaParseMs,seen,missed}) are migrated to tap on read. `unknown` because lexicons have no dynamic-key map type (see README).",
14 "description": "Map keyed by glyph -> { box:int, kanji:{box:int,seen:int,lastSeen?:str}, lastSeen?:str, modes:{ tap:{seen,missed,ewmaParseMs|null}, type:{seen,missed,ewmaParseMs|null}, meaning:{seen,missed,ewmaParseMs|null} } }. Per-mode success + latency; `box` is kana-reading recall and `kanji` is the separate ruby-bearing written-form recognition ladder (#171). `kanji.lastSeen` is that lane's own date clock for overdue scheduling (#134), distinct from the glyph's `lastSeen`, which every card stamps; older kanji lanes may omit it. `meaning` (word -> gloss) only ever accrues for glossed word glyphs. Counts, boxes and latencies are integers; dates are strings. A missing mode row reads as empty; a missing `kanji` lane reads cold; legacy flat records ({box,ewmaParseMs,seen,missed}) are migrated to tap on read. `unknown` because lexicons have no dynamic-key map type (see README).",
1515 "type": "unknown"
1616 },
1717 "updatedAt": {
1818 "format": "datetime",
1919 "type": "string"
2020 }
2121 },
2222 "required": [
2323 "updatedAt",
2424 "glyphs",
2525 "confusion"
2626 ],
2727 "type": "object"
2828 },
2929 "type": "record"
3030 }
3131 },
3232 "id": "at.kotoba.state",
3333 "lexicon": 1
3434}

Compare other versions