at.kotoba.session
One practice session: the full per-card interaction array, the config that drove it, and session-level rollups. Append-only stack; TID rkeys (time-ordered).
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | kotoba.at |
| Indexed |
Record
record · key tid#card
objectOne answered card. `answer` is what the user produced (the correct reading is derivable by joining packRef+glyph; not stored, per SPEC §3.2).
Properties
answer
stringWhat the user answered. Optional: may be absent on a skip/timeout (app-side `given` is nullable).
distractors
arrayThe other options offered beside the answer: romaji on a tap card, English glosses on a meaning card. Absent for type, which has no grid.
The item's SRS state key: the prompt glyph for a recognition card, `grammar:<id>` for a grammar one (which has no glyph).
How the card was answered. tap = pick the romaji reading, type = write it out, meaning = pick the English gloss (a word, or a derived verb form — see `type`), choice = pick the answer to a grammar prompt from its authored options.
knownValues: tap | type | meaning | choice
render -> first response/keystroke.
render -> submit (tap: == parseMs).
Open string; matches the pack item's type. `conjugation` is a de-conjugation card (#146) — a verb form derived at session time rather than authored in the pack, keyed on the conjugated surface.
#config
objectThe setup choices that drove the session (enables Drill-again + analytics slicing).
#rollup
objectPrecomputed so range scans avoid touching the per-card array.
Properties
byType
unknownMap keyed by type string -> { n, correct }. `unknown` because lexicons have no dynamic-key map type (see README).
Similar lexicons
semantic matchLexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.kotoba.lesson.pack
recordLesson content the app drills. Append-only stack; latest = active. Free-form by design: a known core the UI reads + open `meta`/`defaults` round-tripped untouched (SPEC §3.1a). This record body IS the upload interchange shape (lessons/pack.schema.json).
-
space.opendeck.session
recordA finished study session. Written once; the source of study history and activity stats.