Replace the per-account JSON snapshot with SwiftData @Model records
(ConversationRecord, MessageRecord, ArchiveMetadataRecord). The
in-memory
value types stay unchanged; ChatArchive now persists through a shared
ModelContainer filtered by accountJID. Legacy JSON is migrated once on
first load and then removed.