town.chalky.occurrence

chalky.town

Documentation

A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completedDates/skipDates string arrays that used to live on the task.

main record

A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completedDates/skipDates string arrays that used to live on the task.

Record Key tid Timestamp-based ID

Properties

completed boolean Required

No description available.

Default: false
completedAt string datetime Optional

When `completed` last flipped to true.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

date string Required

The occurrence day as YYYY-MM-DD. (series, date) uniquely identifies an occurrence within a repo.

series string Required

The rkey of the recurring town.chalky.task this occurrence belongs to. A weak reference: the full at-uri is derived from the author's repo and the town.chalky.task collection.

skipped boolean Required

Whether this occurrence was removed from the series (hidden without ending the whole series).

Default: false
stamps object Optional

Hybrid-logical-clock stamps mirroring town.chalky.task's stamps field (see its description; approach borrowed from the CRDT ideas behind automerge.org). An occurrence is one decision, so it carries a single group.

updatedAt string datetime Required

Last local edit; used as the whole-record last-write-wins clock during sync. The physical component of a hybrid logical clock, so it is monotonic per device.

View raw schema
{
  "description": "A single occurrence of a recurring town.chalky.task that has diverged from its series' default. A recurring task is a template that projects occurrences onto later matching days; an occurrence stays a pure projection until the user acts on one day (marks it done, or removes it), at which point this record materializes to carry that per-day state. It exists only while it differs from the default — reverting an occurrence to not-done and not-skipped deletes the record. Replaces the older completedDates/skipDates string arrays that used to live on the task.",
  "key": "tid",
  "record": {
    "properties": {
      "completed": {
        "default": false,
        "type": "boolean"
      },
      "completedAt": {
        "description": "When `completed` last flipped to true.",
        "format": "datetime",
        "type": "string"
      },
      "createdAt": {
        "format": "datetime",
        "type": "string"
      },
      "date": {
        "description": "The occurrence day as YYYY-MM-DD. (series, date) uniquely identifies an occurrence within a repo.",
        "type": "string"
      },
      "series": {
        "description": "The rkey of the recurring town.chalky.task this occurrence belongs to. A weak reference: the full at-uri is derived from the author's repo and the town.chalky.task collection.",
        "type": "string"
      },
      "skipped": {
        "default": false,
        "description": "Whether this occurrence was removed from the series (hidden without ending the whole series).",
        "type": "boolean"
      },
      "stamps": {
        "description": "Hybrid-logical-clock stamps mirroring town.chalky.task's stamps field (see its description; approach borrowed from the CRDT ideas behind automerge.org). An occurrence is one decision, so it carries a single group.",
        "properties": {
          "state": {
            "description": "Covers completed, completedAt and skipped.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "updatedAt": {
        "description": "Last local edit; used as the whole-record last-write-wins clock during sync. The physical component of a hybrid logical clock, so it is monotonic per device.",
        "format": "datetime",
        "type": "string"
      }
    },
    "required": [
      "series",
      "date",
      "completed",
      "skipped",
      "createdAt",
      "updatedAt"
    ],
    "type": "object"
  },
  "type": "record"
}

Lexicon Garden

@