Editor/Data/ArchStyleName.cs
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Sunless.Architecture;
// Reads a bool/number token as a string — migration for properties whose type changed after plans were written.
public sealed class ArchStyleNameConverter : JsonConverter<string> {
public override string Read( ref Utf8JsonReader reader, System.Type type, JsonSerializerOptions options ) {
switch ( reader.TokenType ) {
case JsonTokenType.String:
return reader.GetString();
case JsonTokenType.True:
case JsonTokenType.False:
case JsonTokenType.Null:
return "";
case JsonTokenType.Number:
return "";
default:
reader.Skip();
return "";
}
}
public override void Write( Utf8JsonWriter writer, string value, JsonSerializerOptions options ) {
writer.WriteStringValue( value ?? "" );
}
}