if (pinsByName.containsKey(pin.name))
throw new IllegalArgumentException("Duplicate pin name: " + pin.name);
pinsByName.put(pin.name, pin);
if (pinsByName.containsKey(pin.name))
throw new IllegalArgumentException("Duplicate pin name: " + pin.name);
pinsByName.put(pin.name, pin);