setOptionValue = (options, optionPath, value) => {
	if (!optionPath.length)
		throw new EvidenceError('Internal Error', [
			'Attempted to lookup option that did not have a path'
		]);
	let v = options;
	for (const p of optionPath.slice(0, -1)) {
		v = v[p];
	}
	const lastItem = optionPath.at(-1);
	if (!lastItem)
		throw new EvidenceError('Internal Error', [
			'optionPath was already validated to have length, but is now missing a final element. Wat?'
		]);
	v[lastItem] = value;
}
@param {*} options
@param {string[]} optionPath
@param {string | number | boolean} value