---
feature_story: FS_90_48_11_45
feature_title: forced assignment from entire type value space
feature_status: OBSOLETE
---

NOTE: This feature is obsoleted by FS_44_36_84_88 consume args one by one.
TODO: This behavior is changed (review all the docs related to this and update):
      Such incompatible values will not be "eaten" because
      we eat values one-by-one narrowing down (querying) envelopes step-by-step now.

TODO: This was written ahead of the implementation - fix description when implemented.
TODO: This feature is actually special case of FS_62_25_92_06/FS_13_51_07_97 where `ArgSource.ExplicitValue` overrides `ArgSource.ImplicitValue`.
NOTE: This feature causes FS_51_67_38_37 impossible arg combinations.

When some args narrow down possible selection,
then "incompatible" with that selection value appear on the command line,
it should not be ignored simply because it does not match pre-filtered value set for that next `prop_name`.

For example:

```
some_command goto upstream qa apac |
```

If `upstream` already narrows down the results which exclude `qa`
(e.g. they include `dev` instead), the `arg_value` for `ServicePropName.code_maturity`
should still be forced-assigned to `qa` instead (because it is seen explicitly on the command line).

There should be a metadata indicating how this new (overriding) `qa` value was decided:
*   `ArgSource.ImplicitValue` = value taken from a search result with singled out `data_envelope`.
*   `ArgSource.ExplicitValue` = value taken from an arg matching one of the values.

Note the difference:
*   Such forced value cannot be possibly proposed
    (as it would be filtered out by existing command line args).
*   But it can be manually specified = forced
    (which will make command line useless as is because of zero search results until more changes are done to the line).
