using UnityEngine; namespace IdleSpectator; /// /// Lightweight watch payload for camera / tip. Ranking lives on ; /// typed interrupt policy uses the registry candidate, not this DTO. /// public sealed class InterestEvent { public float Score; public Vector3 Position; public Actor FollowUnit; public Actor RelatedUnit; public string Label; public float CreatedAt; public string AssetId; public int ParticipantCount; public int NotableParticipantCount; public float CharacterSignificance; public bool HasFollowUnit => FollowUnit != null && FollowUnit.isAlive(); public bool HasRelatedUnit => RelatedUnit != null && RelatedUnit.isAlive(); public bool HasValidPosition => HasFollowUnit || (Position != Vector3.zero && !float.IsNaN(Position.x)); }