You are right, any ray in the input must be non-zero. This is not checked during construction. Many rules wouldn't care, and reducing to RAYS also removes [0] from the list, but in your particular case the rule for POINTED uses INPUT_RAYS and assumes that any non-zero scaling of a ray is different f...