namespace AIRuntime.Runtime.Capabilities.Permissions
{
    /// <summary>
    /// Describes the type of access required by a capability.
    /// </summary>
    public enum CapabilityPermission
    {
        /// <summary>
        /// Reads data without intentionally modifying state.
        /// </summary>
        ReadOnly,

        /// <summary>
        /// Creates or modifies persistent data.
        /// </summary>
        Write,

        /// <summary>
        /// Deletes data or performs difficult-to-reverse actions.
        /// </summary>
        Destructive,

        /// <summary>
        /// Starts or interacts with external processes.
        /// </summary>
        Process,

        /// <summary>
        /// Communicates with an external network resource.
        /// </summary>
        Network
    }
}