feat: add Magic8Task toString and parse methods