What Is The Recommended View Hierarchy for SwiftData Many-Many Relationships?

I am building an app where tasks can be shown on multiple selected days. The user will select a day and the available tasks should be shown. I am struggling to build a view hierarchy where the visible tasks will update when added to the currently shown day.

A simplified model looks like the below:

@Model final class Day
{
    private(set) var dayID: UUID = UUID()
    var show: [Item]?    
}

@Model final class Item
{
    private(set) var itemID: UUID = UUID()
    @Relationship(inverse: \Day.show) var showDays: [Day]?
}

I have a view representing a day, and I would like it to display a list of associated tasks below.

The view doesn't update if I list a day's tasks directly, e.g. List(day.show) {}

I get a compile error if I build a sub view that queries Item using the day's show array:

let show = day.show ?? []
        let predicate = #Predicate<Item> { item in
            show.contains(where: { $0.itemID == item.itemID }) }

I get runtime error if I flip the predicate:

let dayID = day.dayID
        let predicate: Predicate<Item> = #Predicate<Item> { item in
            item.showDays.flatMap { $0.contains(where: { $0.dayID == dayID }) } ?? false }

I'm at a loss of how to approach this, other that just forcing the whole view hierarchy to update every time a make a change.

Is there a recommended approach to this situation please?

I have found that the predicate building for a many-many relationship works in the following form:

let itemsIDs = day.show?.map { $0.persistentModelID } ?? []
        let predicate = #Predicate<Item> { item in itemsIDs.contains(item.persistentModelID) }
What Is The Recommended View Hierarchy for SwiftData Many-Many Relationships?
 
 
Q