From ca57e8778aef6b16d904314e589f7a567a2e816f Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Thu, 25 Jun 2026 23:52:07 -0700 Subject: [PATCH] feat(opl): expose TextBlock() on IPropertyList OplTextBlock.TextBlock() was only on the concrete ObjectPropertyList, so GetProperties(IPropertyList) overrides in content could not reach the multi-line builder (its constructor is internal, and the interface only exposed the lower-level AddChunked). Declare TextBlock() on IPropertyList so content can write `using var block = list.TextBlock();` directly. Co-Authored-By: Claude Opus 4.8 (1M context) --- Projects/Server/PropertyList/IPropertyList.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Projects/Server/PropertyList/IPropertyList.cs b/Projects/Server/PropertyList/IPropertyList.cs index 6a873f995..d6b529823 100644 --- a/Projects/Server/PropertyList/IPropertyList.cs +++ b/Projects/Server/PropertyList/IPropertyList.cs @@ -38,6 +38,9 @@ public interface IPropertyList : ISelfInterpolatedStringHandler /** Emits newline-joined text across multiple properties so none exceeds the legacy client's per-property buffer. */ public void AddChunked(ReadOnlySpan text); + /** Builder for variable-length multi-line free text; flushes via AddChunked on dispose. */ + public OplTextBlock TextBlock(); + /** Convenience method for $"{value}". */ public void Add(int number, int value);