I asked ChatGPT this and it gave me three options:
2. Copy() constructor
3. Deep copy (using this.value)```
My original object does not have a cloneable interface or a copy() constructor, and it doesn't seem appropriate to include one because I am only making a copy for one specific command out of multiple commands.
Essentially what I am trying to do is to change one attribute of a `Skill` object (which contains multiple other attributes) but I do not want this to affect the original Skill object.
Illustrated example: Maybe I want to change the duration from 40000ms to 600000ms for just this invocation of a `SpecialBuff()` command. However outside of invocation in this way, I want the duration to remain at 40000ms.
My first thought was to instantiate a copy and then run through the usual method with a copy of the original object, which led to this question.