JackFredLib: Extra Command Source Data adds an attachment Minecraft's CommandSourceStack used when running commands. This allows you to attach extra context to advanced commands that redirect back into itself in the same vein as the position, entity, level, etcetera, and do advanced things such as repeatable arguments.
When overriding the copy method, it is critical that a deep copy is made. This means that any mutable objects such as sublists must be copied along with all children.
Then when registering your command, you'll need to use the methods in ESD in the redirect lambda: