new signature: i3.filter(tree=None, function=None, **conditions) i3.filter takes a function that does custom checking on a node. The custom function doesn't have to do any key or index checking, this is handled by i3.filter internally.
Example: i3.focus(title='xyz', con_id=666) will focus a window titled "xyz" with a container id 666.
i3.window has been removed because it was too specific and it didn't handle other container criteria. i3.container excepts keyword arguments and formats them into i3 syntax for containers. It doesn't do anything by itself and is meant to be used in combination with existing functions.