treat playbook as struct with pyyaml