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

TODO: Clarify, add examples, provide details.

`search_control` describes for `FuncTreeInterp` how to query required `envelope_class` based on `args_context`.
See `SearchControlSchema`.

`search_control` lists `arg_name`-s which `arg_value`-s will be
taken from the `args_context` to map into `prop_name`-s to search for the `data_envelope`.
See FS_10_93_78_10 `arg_name_to_prop_name_map` for more details.

Not all entries in `args_context` are used to search objects.
Some `arg_name`-s may not map into `prop_name`-s on `data_envelope`.
See FS_61_67_08_53 non-searchable `arg_value` for more details.

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.
