why don't we submit a bytes32 arrays that can contain zeros where we want a default zero hash to be
[0xabc, 0, 0xdef,...]
this way we could get rid of the uint8 bits. Maybe submitting zero values to calldata and memory isn't all that bad. Todo: research this