Do we still need to pass in the Requirement here(toThriftType)?
Since the scroogeField already knows the requirement type: scroogeField.isOptional
Maybe we can also create a private method to remove duplication:
private Requirement getRequirementType(ThriftStructFieldInfo scroogeField)