A copy constructor is necessary for passing (or returning) `Entity` objects by value. Without it, all `Entity` objects will have to be heap-allocated, which is slower and less convenient. I'll add a note to the documentation that the copy constructor is a shallow copy.