Theme: Popup:
The Search action of the LookupController returns json of AjaxListResult, so doing Custom Item Template and Table Layout is exactly the same as for the AjaxList

Lookup with Custom Item template

Meal:

Lookup with Table Layout

Meal table:

Binding to parents and setting predefined parameters is done exactly as for the AjaxDropdown using .Parent() and .Parameter(), values are passed to both GetItem and Search actions

Lookup bound to many parents

Parent Categories:
    Parent Category:
    Child Meal:

    Setting predefinded parameters

    Meal1 (categories = Legumes):
    Meal1 (categories = {Fruits,Legumes}):