---
feature_story: FS_31_70_49_15
feature_title: plugin `search_control`
feature_status: TEST
---

TODO: Clarify, add examples, provide details.

Key `search_control` of any `data_envelope` points to an object which describes for `FuncTreeInterp`
how to query required `envelope_class` based on `args_context`.

See also `SearchControlSchema`.

Basically, `search_control` lists arg types (not arg values) which values will be
taken from the `args_context` to search for the `data_envelope`.

Not all entries in `args_context` are used to search objects.
Some arg types may not exist as property/key on `data_envelope`.

TODO: Who decides what goes into `search_control`: config, data, plugin? Probably all.
      However, current solution is to simply use data - see `SearchControlSchema`.

Immediately targeted use case:
*   `FuncTreeInterp` uses `search_control` (see `func_search_control`) to query for the function.
*   Then function envelope specifies `search_control` for all its `data_envelope`-s it needs to single out.
