#pragma once

#include "Parameters/DeepPluckParameterState.h"
#include "Presets/DeepPluckFactoryCategories.h"

namespace deeppluck::presets
{
inline constexpr auto profileVersion = "rev1";
struct GeneratedCandidate
{
    DeepPluckParameterValues values {};
    juce::String id;
    juce::String name;
    std::uint64_t derivedSeed = 0;
    bool exploration = false;
};

[[nodiscard]] GeneratedCandidate generateCandidate (
    const juce::AudioProcessorValueTreeState& state, int category,
    std::uint64_t rootSeed, int index);
[[nodiscard]] juce::String seedText (std::uint64_t seed);
}
