public static string ToSerializationString(this AnotherSerializedEnum element)
    {
        //Example of implicit translation that would break on enum value name refactor
        switch (element)
        {
        case AnotherSerializedEnum.A:
        case AnotherSerializedEnum.B:
        case AnotherSerializedEnum.C:
        case AnotherSerializedEnum.D:
        case AnotherSerializedEnum.E:
        case AnotherSerializedEnum.F:
        case AnotherSerializedEnum.G: return(element.ToString());

        default:
            Debug.LogError($"Unknown AnotherSerializedEnum: {element}");
            return("");
        }
    }
    public static void Initialize()
    {
        if (initialized)
        {
            return;
        }

        initialized = true;

        for (SerializedEnum i = 0; i < SerializedEnum.MAX; i++)
        {
            serializedEnums[i.ToSerializationString()] = i;
        }

        for (AnotherSerializedEnum i = 0; i < AnotherSerializedEnum.MAX; i++)
        {
            anotherSerializedEnums[i.ToSerializationString()] = i;
        }

        LoadSystemConfig();
    }