Lesson 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).
tid
Timestamp-based ID
Properties
createdAt
string
Optional
ISO 8601. NOTE: the app currently stamps a date-only string (YYYY-MM-DD), not a datetime — left unformatted here pending reconciliation (see README).
defaults
ref
#defaults
Optional
No description available.
items
array
of
ref
#item
Required
No description available.
meta
unknown
Optional
Pack-level open extension; UI ignores, round-trips.
phase
string
Optional
Open. kana | vocab | grammar.
rationale
string
Optional
No description available.
script
array
of
string
Optional
Declared scripts; drives chips + Focus. Derived from item types if omitted.
title
string
Required
No description available.
View raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"title",
"items"
],
"properties": {
"meta": {
"type": "unknown",
"description": "Pack-level open extension; UI ignores, round-trips."
},
"items": {
"type": "array",
"items": {
"ref": "#item",
"type": "ref"
}
},
"phase": {
"type": "string",
"description": "Open. kana | vocab | grammar."
},
"title": {
"type": "string"
},
"script": {
"type": "array",
"items": {
"type": "string"
},
"description": "Declared scripts; drives chips + Focus. Derived from item types if omitted."
},
"defaults": {
"ref": "#defaults",
"type": "ref"
},
"createdAt": {
"type": "string",
"description": "ISO 8601. NOTE: the app currently stamps a date-only string (YYYY-MM-DD), not a datetime — left unformatted here pending reconciliation (see README)."
},
"rationale": {
"type": "string"
}
}
},
"description": "Lesson 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)."
}