store names as {id: name, ...}, not [{id, name}, ...] entries appear the same way, and js stores keys in the insertion order fixup numbers converted to strings fixup select options typing to accept [string, string] instead of [number, string]