optify 1.3.1

Simplifies getting the right configuration options for a process using pre-loaded configurations from files (JSON, YAML, etc.) to manage options for experiments or flights. This library is mainly made to support building implementations for other languages such as Node.js, Python, and Ruby. It is not meant to be consumed directly yet.
Documentation
// Similar to https://github.com/juharris/dotnet-OptionsProvider/blob/main/src/OptionsProvider/OptionsProvider/FeatureConfiguration.cs

use serde::Deserialize;

use super::conditions::ConditionExpression;
use super::metadata::OptionsMetadata;

pub(crate) type ConfigurationOptions = serde_json::Value;

#[derive(Clone, Debug, Deserialize)]
#[allow(unused)]
pub(crate) struct FeatureConfiguration {
    pub imports: Option<Vec<String>>,
    pub metadata: Option<OptionsMetadata>,
    /// Conditions to automatically enable this feature file when constraints are given when getting configuration options.
    ///
    /// More details in the JSON schema.
    pub conditions: Option<ConditionExpression>,
    pub options: Option<ConfigurationOptions>,
}