PDF fields can be nested. If there are, they won't have a /FT
(field type), and will have a Kids array, so we recursively
get all of the fields with a specific type from the PDF.
filter out push button fields: these are things like "Print this
PDF", aren't saved with the PDF's data, and thus aren't really
a part of the form as we consider it, they're extra software
on top of the form itself.
general things to make parsing a form more rigorous, like
not failing if there are no fields
adds a need_calculations function, that returns a binary
"this form needs mathematical calculations", based on word match
reorganizing existing metrics to be specific numerical values,
that are mostly independent of each other
initial weights and scaling ("normalizing") of metrics and
combination into one score
also have an intermediate function to display weighted metrics, for debugging / questions
pass in openai / spot creds, to integrate with PDF Stats
/FT
(field type), and will have aKids
array, so we recursively get all of the fields with a specific type from the PDF.need_calculations
function, that returns a binary "this form needs mathematical calculations", based on word match