namespace AIAssistantModule.Core.Models { public class StepContext { private readonly Dictionary _data = new(); public void Set(string key, T value) { _data[key] = value!; } public T Get(string key) { if (!_data.TryGetValue(key, out var value)) throw new InvalidOperationException( $"Context key '{key}' not found."); if (value is not T typedValue) throw new InvalidOperationException( $"Context key '{key}' is not of type {typeof(T).Name}."); return typedValue; } public bool TryGet(string key, out T result) { if (_data.TryGetValue(key, out var value) && value is T typed) { result = typed; return true; } result = default!; return false; } } }