public struct Order: Codable { public private(set) var items: [Item] public init() { items = [] } public mutating func add(item: Item) { items.append(item) } public func receipt() -> Receipt { return Receipt.receipt(for: items) } }