Besides the return and weird naming (should be snake_case rather than camelCase and PascalCase like go). I would just use match against the slice rather than the first item to prevent the user from specifying extra values and not needing to check len(parts), this can remove those functions and do all the checks inside the match, probably can save 10-30 lines as it would remove the need for Action. You can also just derive Default rather than new function.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Besides the return and weird naming (should be snake_case rather than camelCase and PascalCase like go). I would just use match against the slice rather than the first item to prevent the user from specifying extra values and not needing to check len(parts), this can remove those functions and do all the checks inside the match, probably can save 10-30 lines as it would remove the need for Action. You can also just derive Default rather than new function.