so `IsBondable` returns different results if `current` changes? That is very non-obvious. Maybe the function should be renamed to `IsBondableInto(string master_name, integer item_id)` ?