syntax = "proto3";

// Get protoc here https://github.com/protocolbuffers/protobuf/releases
// .\protoc --python_out=. --pyi_out=. CAP.proto

enum ErrorCode {
    option allow_alias = true;
    EC_OK = 0;
    EC_NOT_FOUND = 1;
    EC_ALREADY_EXISTS = 2;
    EC_MAX = 2; // IMPORTANT: Update this if you add more error codes
}

message Error {
    ErrorCode code = 1;
    optional string message = 2;
}

message ActorInfo {
    string name = 1;
    optional string namespace = 2;
    optional string description = 3;
}

message ActorRegistration {
    ActorInfo actor_info = 1;
}

message ActorLookup {
    optional ActorInfo actor_info = 1;
    // TODO:  May need more structure here for semantic service discovery
    // optional string service_descriptor = 2;
}

message ActorInfoCollection {
    repeated ActorInfo info_coll = 1;
}

message ActorLookupResponse {
    bool found = 1;
    optional ActorInfoCollection actor = 2;
}

message Ping {
}

message Pong {
}
