{
"id": "town.chalky.config",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"dataMode",
"createdAt",
"updatedAt"
],
"properties": {
"theme": {
"enum": [
"light",
"dark",
"system"
],
"type": "string",
"description": "Preferred color mode."
},
"autoDone": {
"type": "boolean",
"description": "Mark a task done automatically once all its subtasks complete."
},
"dataMode": {
"enum": [
"public",
"private"
],
"type": "string",
"description": "Where the author's task records live. `public` = the author's own PDS repo (world-readable). `private` = chalky.town's per-DID private store, exportable on demand."
},
"carryOver": {
"type": "boolean",
"description": "Auto-roll incomplete past tasks onto today on load."
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "Last edit; the last-write-wins clock for the config record."
},
"somedayOpen": {
"type": "boolean",
"description": "Whether the Someday drawer is expanded."
},
"sortStrategy": {
"enum": [
"none",
"color",
"completion",
"color-completion"
],
"type": "string",
"description": "How each day's tasks are auto-ordered. `none` keeps the manual drag order; `color` groups by the palette order (uncolored last); `completion` floats incomplete tasks up and sinks done ones by finish time; `color-completion` groups by color, then by completion within each group."
}
}
},
"description": "A user's chalky.town configuration, stored once in the author's PDS repo at rkey `self`. Read right after sign-in to route task data — `dataMode` decides whether tasks live in the public PDS repo or in chalky.town's private per-DID store — and to restore theme/preferences across devices. The mode choice is currently sticky once set."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}