Here is a list of handlers:
OnAddColumns = (constructors as {[Name = text, Function = (row as record) => any, Type = type]}) as table => ...
OnCombine = (tables as {table}, index as Int64.Type) as table => ...,
OnDistinct = (columns as {text}) as table => ...,
OnGroup = (keys as {text}, aggregates as {[Name = text, Function = (subtable as table) => any, Type = type]}) => ...,
OnInvoke = (function as function, arguments as list, index as Int64.Type) as any => ...,
OnJoin = (joinSide as Int64.Type, leftTable as table, rightTable as table, joinKeys as {text}, joinKind as JoinKind.Type) as table => ...,
OnPivot = (pivotValues as list, attributeColumn as {text}, valueColumn as text, aggregateFunction as (items as list) as any) as table => ...,
OnRenameColumns = (renames as {text}) as table => ...,
OnSelectColumns = (columns as {text}) => ...,
OnSelectRows = (condition as (row as record) as logical) as table => ...,
OnSkip = (count as Int64.Type) as table => ...,
OnSort = (order as {[Name = as text, Order as Order.Type]}) as table => ...,
OnTake = (count as Int64.Type) as table => ...,
OnUnpivot = (pivotColumns as {text}, attributeColumn as text, valueColumn as text) as table => ...,
OnNativeQuery = (query as text, optional parameters as any, optional options as any) as any => ...,
Some operations are not foldable, others still are expressed in terms of other operations like Table.NestedInnerJoin.