deserialize(context) {
		/** @type {T} */
		const obj = Object.create(null);
		/** @type {string[]} */
		const keys = [];
		/** @type {string | null} */
		let key = context.read();
		while (key !== null) {
			keys.push(key);
			key = context.read();
		}
		for (const key of keys) {
			obj[/** @type {keyof T} */ (key)] = context.read();
		}
		return obj;
	}
@template {object} T
@param {ObjectDeserializerContext} context context
@returns {T} null object