protected virtual void DumpMembers(LuaTextWriter output) { var props = new Dictionary <string, object?>(_properties); foreach (var key in PropertyOrder) { if (props.Remove(key, out var value)) { output.WriteProperty(key, value); } } foreach (var(key, value) in props.OrderBy(GetOrder).ThenBy(p => p.Key)) { output.WriteProperty(key, value); } if (Clear.Any()) { output.WriteObjectValue("Clear", () => { foreach (var(k, v) in Clear) { output.WriteKey(k); output.Write("="); output.WriteValue((object?)v); output.Write(",\n"); } });