@Attribute(.codable): хранить чужие типы ⚠️
📦 SwiftData наконец умеет хранить типы, которыми вы не владеете. Схему для чего-то вроде MKMapItem.Identifierон вывести не может — а @Attribute(.codable) сохраняет закодированное представление как непрозрачный блоб. Честный размен, который стоит проговорить: по такому свойству не будет ни #Predicate, ни сортировки, ни осведомлённости о миграциях. Это аварийный выход, а не способ моделирования.
⚠️ И самое неприятное — именно про миграции. Изменение формы codable-типа не запустит миграцию SwiftData. То есть за совместимость отвечает ваш Codable: он должен оставаться и forward-, и backward-совместимым сам по себе. Если данные активно эволюционируют, лучше моделировать нормально. Хорошие сценарии: Codable-типы из фреймворков, идентификаторы рядом с обычными атрибутами, значения, которые нужно просто положить и достать.