---
feature_story: FS_42_76_93_51
feature_title: very first zero arg mapping interp
feature_status: TBD
---

NOTE: This might seem obsolete, but it becomes crucial because you need the "very first special"
      who currently starts cascading function loading on activation (only one can be that interp).


TODO: Consolidate: it appears that this feature is a trivial case of FS_01_89_09_24 (interp tree)
      with just leaves (str keys rather than sub-dict).
TODO: This plugin was obsoleted by `FS_01_89_09_24` `InterpTreeInterp`.
      In fact `FirstArgInterp` is now implemented as special case of `InterpTreeInterp`.

Dispatch command line interpretation to the next interpreter
based on the value in the very 1st token (`PosArg`) (with 0 ipos).

For example, `argrelay` can be configured to handle two command (configured to handle differently):

```
relay_demo: plugin_instance_id_1     # normally, it is `DemoInterpFactory`
some_command: plugin_instance_id_2   # in tests, it is `DemoInterpFactory`, but can be `NoopInterpFactory`
```

In this case:

*   Completion and invocation for `relay_demo` will be based on plugin id `plugin_instance_id_1`

    ```sh
    relay_demo goto host # `Enter` or `Tab` will invoke plugin_instance_id_1
    ```

*   Completion and invocation for `some_command` will be based on plugin id `plugin_instance_id_2`

    ```sh
    some_command goto host # `Enter` or `Tab` will invoke plugin_instance_id_2
    ```
