import "DatabaseCampaignMessage.proto";

message CoredVoterProtoMsg {
    required DatabaseCampaignMessage fsppilot = 1;

    repeated group Result = 2 {
        enum ResultType {
            /* Voter did the right thing */
            OK = 1;
            OK_WRONG_CONTROL_FLOW = 2;
            OK_DETECTED_ERROR = 3;

            /* Voter did the wrong thing */
            ERR_WRONG_RESULT   = 4;
            
            ERR_TRAP = 5;
            ERR_TIMEOUT = 6;
            ERR_OUTSIDE_TEXT = 7;
            ERR_OUTSIDE_DATA = 8;

            UNKNOWN = 9;
            NOINJECTION = 10;
        }

        required int32 bitoffset       = 1 [(sql_primary_key) = true];
        required ResultType resulttype = 2;
        required uint32 experiment_number = 3;

        optional uint32 original_value = 4;

        optional string details = 5;
    }
}
