I am not sure if there are really properties that are "required" in a strong way. It looks that currently bbox is the only one property which is required everywhere. But actually if one uses poly then the bbox will not be used. Originally bbox is just a "generally recommended" property.
Granted, bbox is not required for all elements, but it doesn't make sense to have an ocr_carea without bbox or poly. We could also link to 'bbox or poly' or similar.
https://github.com/kba/hocr-spec/pull/84#issuecomment-256556599:
I am not sure if there are really properties that are "required" in a strong way. It looks that currently
bbox
is the only one property which is required everywhere. But actually if one usespoly
then thebbox
will not be used. Originallybbox
is just a "generally recommended" property.