syntax = "proto3";

option csharp_namespace = "Unity.MLAgents.CommunicatorObjects";
package communicator_objects;

/*
 * A Capabilities message that will communicate both C# and Python
 * what features are available to both.
 */
message UnityRLCapabilitiesProto {
    // These are the 1.0 capabilities.
    bool baseRLCapabilities = 1;

    // concatenated PNG files for compressed visual observations with >3 channels.
    bool concatenatedPngObservations = 2;

    // compression mapping for stacking compressed observations.
    bool compressedChannelMapping = 3;

    // support for hybrid action spaces (discrete + continuous)
    bool hybridActions = 4;

    // support for training analytics
    bool trainingAnalytics = 5;

    // Support for variable length observations of rank 2
    bool variableLengthObservation = 6;

    // Support for multi agent groups and group rewards
    bool multiAgentGroups = 7;
}
