Sample rack
Receive something, pull against a job, move a tag between racks. It behaves the way the real thing does.
A tag is one group of identical pieces. Available is what's left after anything reserved against a job. Nothing special happens at zero — it just drops off the rack.