It’s reasonable to think the consumer invoking your URL would know which fields are involved and their order.
That’s a good point. This would be a real challenge if your taplist involved a mix of beer, wine, mead, kombucha, root beer, …
In the case of ABV, SRM, IBU, OG and FG, the “key” explicitly appears in the HTML,
I’m sure that’s how you’re (now) parsing these fields.
Maybe you just specify whether the tap number, producer, style and description are present. I think it’s a reasonable restriction to assume if one beverage has a producer, style or description that all
of the beverages involve these fields. Certainly, if one beverage has a tap number then all beverages will have a tap number. And you may be able to infer whether a field is present based on the context. For example, the description is a paragraph,
<p>Free-form description of the beverage.</p>
(not sure if it will always be the only paragraph).
Again, I really like what you’ve done. I wouldn’t spend too much time implementing my crazy ideas. Let’s see what the broader community thinks.