Bravo! A common approach to puzzles like this is to introduce new concepts gradually, then test the player on whether they understand them. You've thrown us in the deep end instead, and this puzzle is better for it.