syntax = "proto2";

message ClientIssue {
    optional Level level = 0x1;
    enum Level {
        LEVEL_UNKNOWN = 0x0;
        LEVEL_DEBUG = 0x1;
        LEVEL_INFO = 0x2;
        LEVEL_NOTICE = 0x3;
        LEVEL_WARNING = 0x4;
        LEVEL_ERROR = 0x5;
    }
    optional Code code = 0x2;
    enum Code {
        CODE_UNKNOWN = 0x0;
        CODE_INDEX_OUT_OF_BOUNDS = 0x1;
        CODE_VERSION_MISMATCH = 0x2;
        CODE_CACHED_CHANGE = 0x3;
        CODE_OFFLINE_CHANGE = 0x4;
        CODE_CONCURRENT_CHANGE = 0x5;
    }
    optional int32 repeatCount = 0x3;
}

message ClientResolveAction {
    optional Code code = 0x1;
    enum Code {
        CODE_UNKNOWN = 0x0;
        CODE_NO_ACTION = 0x1;
        CODE_RETRY = 0x2;
        CODE_RELOAD = 0x3;
        CODE_DISCARD_LOCAL_CHANGES = 0x4;
        CODE_SEND_DUMP = 0x5;
        CODE_DISPLAY_ERROR_MESSAGE = 0x6;
    }
    optional Initiator initiator = 0x2;
    enum Initiator {
        INITIATOR_UNKNOWN = 0x0;
        INITIATOR_SERVER = 0x1;
        INITIATOR_CLIENT = 0x2;
    }
}

