classDiagram class Entity { <> -List~Entity~ _observers +Entity Prey +Attach(observer: Entity) +Detach(observer: Entity) +Notify() +Update(subject: Entity) +Move() } class Morg { } Entity <|-- Morg note for Entity "Entity can be both Subject (prey) and Observer (predator) - When prey moves, it Notifies observers - Observers Update() to follow prey - Enables predator-prey following behavior" Entity --> Entity : observes Entity --> Entity : subject note for Entity "Observer Flow: 1. Predator finds prey 2. Predator.Attach(prey) 3. Prey moves 4. Prey.Notify() 5. Predator.Update(prey) 6. Predator turns toward prey"