Currently there is no way to apply changes to a specific count of entities in a specific range, there's only selecting from the start of the entity list, or the back of the list
I think a new argument [cm] would be a useful addition to Target Selectors.
This new argument would specify the minimum count away an entity must be to be targeted, and would grab all entities after that one that it can find. If it is beyond the list of viable entities, it will return no entities, just as the target selectors are already designed.
Examples as follows:
Example One: If there were 33 cows, and you used the target selector @e[type=Cow,cm=3] the selector would return the cows from the 3rd on through to the 33rd, ignoring 1 and 2
Example Two: With the same list of 33 cows, if you used the target selector @e[type=Cow,cm=-5], the selector would act similarly to the way [c] does, selecting cows 29 through 33, seemingly redundant, but it has more uses when used in tandem with [c], explained later
Example Three (Out of range example): 33 cows, and the selector @e[type=Cow,cm=44] would return no entities.
If both [cm] and [c] are used, the selector selects ONLY entities which are within the bounds of the two numbers, i.e. above [cm] and below [c] (including both c and cm in the count). If [c] and [cm] are the same, only the entity specified will be chosen. This next part may be confusing, but examples will hopefully clear it up: if [c] happens to be lower than [cm], the selection will wrap around the end of the list back to the start until it reaches [c]. One last point: if [c] is beyond the actual number of viable entities, the selector will return all the entities that it can within the range, just as the target selectors are already designed.
Examples of conjunctive usage:
Example one, c over cm: with a list of 11 chickens, and the target selector @e[type=Chicken,cm=3,c=7], the selector returns chickens 3 through to 7
Example two, c equal to cm: With a list of 11 chickens, and the target selector @e[type=Chicken,cm=4,c=4], the selector only returns chicken number 4. Useful for picking specific mobs out of a large amount of them, or naming a specific mob out of a lineup
Example three, c under cm: with a list of 11 chickens, and the target selector @e[type=Chicken,cm=8,c=2], the selector returns chickens 8, 9, 10, 11, 1, and 2, wrapping around the end of the list back to the start until it reaches c. This selector is equivalent to @e[type=Chicken,cm=-4,c=2] because the -4 also points to chicken number 8
Example four, c out of range: with a list of 11 chickens, and the target selector @e[type=Chicken,cm=9,c=22], the selector returns only chickens 9, 10, and 11, because no more exist past that point.
Example five, both out of range, c over cm: with a list of 11 chickens, and the target selector @e[type=Chicken,cm=17,c=77], the selector returns nothing because there are only 11 chickens, chickens 17 through 77 do not exist.
Example six: both out of range, c under cm: with a list of 11 chickens, and the target selector @e[type=Chicken,cm=50,c=13], the selector will actually return the entire list of all 11 chickens using the wrap-around mechanic, because cm sees nothing at 50, but wraps around to the start because c is below it. Because there are no twelfth or thirteenth chickens, those are ignored as well
(If you ask me, this wrap-around mechanic should apply to every selector argument with min and max values. it's intuitive to me and makes the target selector system more powerful)
This addition to the target selector system would make it more versatile and more useful in certain cases where a specific range of entities is needed