#pragma once
// usage_scan — the extension-side shell of the instance-usage facet (see
// sample_usage.h for the pure core and its fail-safe folds). Three reads, no
// writes: enumerate every "rsusage_<guid>" key and decode each record; enumerate
// every ReaSampler 9000 FX instance (all tracks incl. master, normal +
// record/input chains, containers recursively, take FX) via
// sample_usage::identityMatches; fold with the pure liveness rule.
//
// The result is one of the two inputs tracking_authority reads — this shell
// gathers, it decides nothing.
//
// REAPER-facing: the .cpp includes reaper_plugin_functions.h WITHOUT
// REAPERAPI_IMPLEMENT (main.cpp owns the API pointers). The header stays
// REAPER-free (`proj` is the opaque ReaProject* passed as void*).

#include "core/wire/sample_usage.h"

namespace reasampler {

// Scan `proj` (nullptr = active project). READ-ONLY: no ext-state write, no project
// mutation.
wire::UsageFoldResult scanInstanceUsage(void* proj);

}  // namespace reasampler
