---
feature_story: FS_10_93_78_10
feature_title: arg_name_to_prop_name_map
feature_status: TEST
---

# Intro

`arg_name_to_prop_name_map` is the key info specified in FS_31_70_49_15 `search_control`.

It specifies what `arg_name` is used for what `prop_name` in any search.

# Motivation

In order to map `arg_name` of FS_20_88_05_60 `dictated_arg` into `prop_name` to
search `data_envelope`-s, there could be two design choices:

*   Simplistic: all `arg_name`-s are identical to corresponding `prop_name`-s

    This approach would effectively get rid of the consept of `arg_name` in almost in all cases except
    FS_61_67_08_53 non-searchable `arg_value` (where corresponding `prop_name` may not exist for given `arg_name`).

*   Map-able: every `arg_name` is configured to be mapped into specific `prop_name`

    This approach gives flexibility of adjusting `arg_name`-s used by
    any func to search `data_envelope` regardless of the actual `prop_name`-s these `data_envelope`-s use.

    This allows having more specific (longer) `prop_name`-s without affecting CLI of the func.

    This also allows disassociating `arg_name` from any `prop_name` in  cases like 
    FS_61_67_08_53 non-searchable `arg_value` (where `arg_value` does not need to be one of the `prop_value`-s).

# Implementation

As of now, `arg_name_to_prop_name_map` is simply a config data which `list`-s singleton `dict`-s:

```
arg_name_to_prop_name_map:
    -   arg_name_1: prop_name_1
    -   arg_name_2: prop_name_2
```

The `list` and singleton `dict` is required
(instead of simply non-singleton `dict` mapping all `arg_name`-s to `prop_name`-s)
to express the order in which `prop_name`-s should be tried to match `arg_value` to their set of `prop_value`-s.
