An unknown key throws with the whole vocabulary, for the reason parseFeatures does: a
silently dropped option reads as "the report ignored what I asked for", which sends the reader
looking for the bug in the renderer rather than in what they typed.
Values arrive as strings because that is what a command line and a JSON string map carry; a caller already holding typed options should build Renderer.Options directly.
Parses a host's string-valued render options into a Renderer.Options.