#pragma once

#include <array>
#include <cstddef>

namespace deeppluck
{
struct FactoryCategory { const char* id; const char* name; const char* prefix; };
inline constexpr std::array factoryCategories {
    FactoryCategory { "deep", "Deep Plucks", "DEEP" },
    FactoryCategory { "warm", "Warm & Soft", "WARM" },
    FactoryCategory { "bright", "Bright & Present", "BRIGHT" },
    FactoryCategory { "emotional", "Emotional", "EMO" },
    FactoryCategory { "atmospheric", "Atmospheric", "ATM" },
    FactoryCategory { "arp", "Arp & Sequence", "ARP" },
    FactoryCategory { "poly", "Chord & Poly", "POLY" },
    FactoryCategory { "experimental", "Experimental", "EXP" }
};

// Current user-approved active library. The four legacy factory:0..3
// snapshots remain loadable compatibility data, but are not active entries.
inline constexpr std::array finalFactoryPresetCounts { 14, 13, 12, 15, 17, 10, 19, 16 };
inline constexpr std::size_t finalFactoryPresetCount = []
{
    std::size_t total = 0;
    for (const auto count : finalFactoryPresetCounts)
        total += static_cast<std::size_t> (count);
    return total;
}();
}
