Cracking the Code: Untangling Game Structure, Properties and Player Experience