@model WritingContextDisplayViewModel @{ var scene = Model.Context!.Scene!; var sceneCharacterIds = scene.SceneCharacters.Select(x => x.CharacterID).ToHashSet(); var relationshipEvents = scene.RelationshipEvents; var relationships = (Model.RelationshipMap?.Relationships ?? []) .Where(x => !sceneCharacterIds.Any() || sceneCharacterIds.Contains(x.CharacterAID) || sceneCharacterIds.Contains(x.CharacterBID)) .ToList(); static string TextOr(string? value, string fallback) => string.IsNullOrWhiteSpace(value) ? fallback : value.Trim(); }

Changes In This Scene

@if (!relationshipEvents.Any()) {

No relationship changes recorded.

} else { }

State At This Point

@if (!relationships.Any()) {

No visible relationships at this point.

} else {
@foreach (var relationship in relationships.Take(12)) {
@relationship.CharacterAName - @relationship.CharacterBName @relationship.CurrentStateName @relationship.RelationshipCategoryName @if (relationship.CurrentIntensity.HasValue) { Intensity @relationship.CurrentIntensity }
}
}