public override Dictionary <Value, Value> GetDictionary() { return(new Dictionary <Value, Value> { { "Name", Name }, { "Description", State.Description }, { "Father", Father.Name }, { "EnterOutputs", EnterOutputs.ConvertAll(output => (Value)output.GetDictionary()) }, { "ExitOutputs", ExitOutputs.ConvertAll(output => (Value)output.GetDictionary()) }, { "Transitions", Transitions.ConvertAll(trans => (Value)trans.Name) }, { "SuperStates", SuperStatesList().ToList().ConvertAll(state => (Value)state.Name) }, { "States", StatesList().ToList().ConvertAll(state => (Value)state.Name) } }); }