This shouldn't be an `Int` here. I'm definitely OK if it's an `Int` in the serialization format, I'm still OK if its an `Int` in the builder (kind of), but is efficiency really such a big concern here that we cannot use at least some abstraction?