import Foundation /// Neutral projection for project selection. Persistence and customer associations /// belong to the host application's service. struct ARProject: Identifiable, Equatable { let id: UUID let name: String let tank: Tank let createdAt: Date let source: Source let reference: String? enum Source { case supplied, custom } } @MainActor protocol ARProjectsProviding { func updateProject(id: UUID, name: String, tank: Tank) throws -> ARProject func deleteProject(id: UUID) throws func loadProjects() throws -> [ARProject] func createProject(name: String, tank: Tank) throws -> ARProject } nonisolated extension TankSize { var volumeTitle: String { switch self { case .t1_2: "2.700 l" case .t2_1: "4.850 l" case .t2_9: "6.400 l" } } }