I want to know the update principle of the `RealityView`.

Here is the code snippets.

struct RealityViewTestView: View {
    @State private var texts: [String] = []
    var body: some View {
        RealityView { content, attachments in
        } update: { content, attachments in
            for text in texts {
                if let textEntity = attachments.entity(for: text) {
                    textEntity.position.x = Float.random(in: -0.1...0.1)
                    content.add(textEntity)
                }
            }
        } attachments: {
            ForEach(texts, id: \.self) { text in
                Attachment(id: text) {
                    Text(text)
                        .padding()
                        .glassBackgroundEffect()
                }
            }
        }
        .toolbar {
            ToolbarItem {
                Button("Add") {
                    texts.append(String(UUID().uuidString.prefix(6)))
                }
            }
            ToolbarItem {
                Button("Remove") {
                    texts.remove(at: Int.random(in: 0..<texts.count))
                }
            }
        }
    }
}
struct RealityViewTestView: View {
    @State private var texts: [String] = []
    @State private var entities: [Entity] = []
    var body: some View {
        RealityView { content, attachments in
        } update: { content, attachments in
            //            for text in texts {
            //                if let textEntity = attachments.entity(for: text) {
            //                    textEntity.position.x = Float.random(in: -0.1...0.1)
            //                    content.add(textEntity)
            //                }
            //            }
            for entity in entities {
                content.add(entity)
            }
        } attachments: {
            ForEach(texts, id: \.self) { text in
                Attachment(id: text) {
                    Text(text)
                        .padding()
                        .glassBackgroundEffect()
                }
            }
        }
        .toolbar {
            ToolbarItem {
                Button("Add") {
                    //texts.append(String(UUID().uuidString.prefix(6)))
                    let m = ModelEntity(mesh: .generateSphere(radius: 0.1), materials: [SimpleMaterial(color: .white, isMetallic: false)])
                    m.position.x = Float.random(in: -0.2...0.2)
                    entities.append(m)
                }
            }
            ToolbarItem {
                Button("Remove") {
                    //texts.remove(at: Int.random(in: 0..<texts.count))
                    entities.removeLast()
                }
            }
        }
    }
}

About the first code snippet, when I remove an element from the texts, why content can automatically remove the corresponding entity? And about the second code snippet, content do not automatically remove the corresponding entity. I am very curious.

I want to know the update principle of the `RealityView`.
 
 
Q