script: it is required and it can be a single command or an array of commands
before_script and after_script are both optional, but if they exists they must be arrays (even if there is only one element)
You can have before_script and after_script as a main-key in the YAML file.
A job that does not have before_script will inherit the central before_script. Same with after_script.
anything:image:busybox:latest# script is required and can be a single value or an arrayscript:echoThescript# after_script is optional but must be an arrayafter_script:-echoAfterscript# before_script is optional but must be an arraybefore_script:-echoBeforescript