#pragma once #include #include #include #include #include #include namespace drumpad_presets { struct Filter { std::optional> tags; }; struct Category { std::optional title; std::optional filter; }; struct File { std::optional filename; std::optional color; // purple, red, yellow, green, blue std::optional stopOnRelease; std::optional looped; std::optional choke; }; struct SequencePad { std::optional start; std::optional duration; std::optional embient; }; struct Sequence { std::optional name; std::optional id; std::optional version; std::optional orderBy; std::optional sequencerSize; std::optional>> pads; std::optional> embientPads; }; struct Preset { std::optional id; std::optional name; std::optional author; std::optional orderBy; std::optional version; std::optional tempo; std::optional icon; std::optional price; std::optional priceForSession; std::optional hasInfo; std::optional> tags; std::optional DELETED; std::optional difficulty; std::optional sample; std::optional audioPreview1Name; std::optional audioPreview1URL; std::optional audioPreview2Name; std::optional audioPreview2URL; std::optional imagePreview1; std::optional videoPreview; std::optional videoTutorial; std::optional> files; std::optional>> beatSchool; std::optional>> easyPlay; std::optional timestamp; }; struct PresetsConfig { std::optional> categories; std::optional> presets; }; } // namespace drumpad_presets