boolean logic is hard
Merge branch 'master' into dynamic-serializer
no failing tests, missing all sorts of features and optimizations *but* might actually be sort of functional