reasampler_pure_library(bank_model SOURCES bank_model.cpp LINK PRIVATE json)
reasampler_test(bank_model LINK bank_model)

reasampler_pure_library(slot_map SOURCES slot_map.cpp LINK PRIVATE json)
reasampler_test(slot_map LINK slot_map json)

reasampler_pure_library(bank_book
    SOURCES bank_book.cpp bank_book_json.cpp
    LINK PUBLIC bank_model slot_map PRIVATE json)
reasampler_test(bank_book LINK bank_book)

# Links nothing: a display name is a string rule, not a bank operation.
reasampler_pure_library(resample_name SOURCES resample_name.cpp)
reasampler_test(resample_name LINK resample_name)

reasampler_pure_library(provenance SOURCES provenance.cpp LINK PRIVATE wire)
# bank_model: the test proves the recorded recipe survives the Sample-JSON round-trip.
reasampler_test(provenance LINK provenance bank_model)
