SettingsPack
A collection of session-setting overrides. The pure-Kotlin port of libtorrent's settings_pack (settings_pack.hpp / settings_pack.cpp).
A SettingsPack stores only the settings that have been explicitly set on it (mirroring the C++ m_strings / m_ints / m_bools vectors). Reading a setting that has not been overridden falls back to the libtorrent default value for that key (see StringSettingDefaults, IntSettingDefaults, BoolSettingDefaults).
Keys are the 16-bit values from StringSetting, IntSetting and BoolSetting; the top two bits select the value type (see SettingType). Passing a key of the wrong type to a typed accessor is a no-op for setters and returns the type's zero value for getters, matching the defensive behaviour of the C++ accessors.
Unlike the C++ version, which keeps its vectors sorted for binary search, this port uses plain hash maps. The semantics (override-or-default, last-write-wins) are identical; only the storage layout differs.