public static long GetLocationId(ItemKey key) => MapItemKeyToLocationId.TryGetValue(key, out var locationId) ? locationId : MapItemKeyToLocationId.TryGetValue(key.ToRoomItemKey(), out var roomLocationId) ? roomLocationId : throw new Exception($"Key {key} does not map to an Archipelago itemlocation");