pub const SCHEMA: u32 = 3;Expand description
On-disk format for a question. Bumped when a field’s meaning changes, or -
as with Question::thread and now Question::answer_timeout - when a
new field is added that a much older magi has no notion of at all.
The web UI is written against this shape by hand - there is no shared schema between the front end and this struct - so a field that changes meaning without a bump here is a UI that lies silently.
A file is refused only when its own schema is greater than this one -
see [read_path] - never merely different: #[serde(default)] on every
field added since 1 is what makes an older file’s absence of thread mean
“no conversation yet” rather than “unreadable”, and a strict equality check
would turn every bump into an upgrade that breaks reading yesterday’s
question files.