---
feature_story: FS_96_46_42_30
feature_title: offered_arg
feature_status: TEST
---

Keywords: `positional` `offered`

# Explanation

A `command_arg` which has only a value is called `offered_arg`.

It means the value is free to be mapped to any object property during mapping.

# Limitations

Because the mapping is done by value matching, `argrelay` has to be able to determine
full value set withing given context.

Knowing the value set ahead limits applicability of `offered_arg`-s.

# `offered_arg` vs `dictated_arg`

The opposite of `offered_arg` is `dictated_arg`.

See FS_20_88_05_60 `dictated_arg` for comparison.

# Python positional arg vs `offered_arg`

`offered_arg` is similar to the concept of positional argument for functions in Python language.
But the similarity is not exact - that is why term "offered" is used instead of "positional".

`offered_arg`-s have order (in both Python and `argrelay`), and `argrelay` uses that order as priority for matching.

Some of the differences from Python positional args:

*   In Python, position determines the meaning of positional arg exactly.

    `argrelay` will try to determine the meaning of `offered_arg` based on the context which includes:
     *   CLI input
     *   server config
     *   indexed data

*   Python requires all positional args listed before named args.

    `argrelay` does not impose that because it will perform value matching to "guess" what parameter it belongs to.
