Because variables are in charge of freeing their resources (if any), resources can only have one owner, otherwise resources would get freed more than once.
When doing assignments let x = y, or passing function arguments by value foo(x), the ownership of the resources, if any, is transferred; this is known as a “move” in Rust-speak.
After moving resources, the previous owner can no longer be used. This avoids the creation of dangling pointers.
{move.play}