---
feature_story: FS_97_64_39_94
feature_title: arg buckets
feature_status: TEST
---

# In short

There should be a way to:
*   limit consumption of args by the prev `envelope_container` (specifically to avoid default overrides)
*   while specifying search for the next `envelope_container`

# Idea

When 1st `data_envelope` is already singled out, user can place a delimiter char on the command line.

This delimiter should instruct:
> If envelope could be singled out by all the args until that delimiter,
> it should not consume args beyond that delimiter.

# Detailed problem description

If two `data_envelope`-s of the same class is required, there will be two sets of args from the same value spaces
(each instance will require same arg types). Values consumable by the 1st `data_envelope` will also be
consumable by the 2nd `data_envelope`.

This is almost like TD_76_09_29_31 overlapped arg vals from diff arg types
except that they are not from different arg types.

The problem happens when search uses many defaults (via FS_72_40_53_00 `fill_control`) -
all these defaults applied on the 1st data envelope
will be overridable by args destined for the 2nd data envelope.

# Solution

Each `envelope_container` can consume only from single `arg_bucket`.

For convenience, to support current default behavior (without any `arg_bucket` separator),
multiple `envelope_container`-s can consume from the same `arg_bucket`.

*   FS_26_43_73_72 func tree consumes as described above
*   FS_01_89_09_24 interp tree consumes regardless of the bucket boundary (sequentially)

# Extensions

TODO_75_52_01_67: `arg_bucket`-s to support multiple var args
