Also expose a class, RecordWorkflowContextJoinedRecordHelper, that application-defined workflow types can use to make their filter steps work the same way.
Add large test on InputRecordFilterStep - that tries to do as many versions of 1-n, n-1, n-1-n, 1-n-1, etc, that my friend claude and i could come up with - along with a CompanyHierarchyTablesAndJoinsMetaDataProducer that defines a nice complex set of tables & joins.