Failed to run my script.0 subschemas matched instead of one

This is my job

executor: default

steps:
        - run:
          name: Check that no git-tracked files were modified
          command: |
            FILES_MODIFIED="$(git status --porcelain)"
            if [[ -n "$FILES_MODIFIED" ]]; then
                echo "The following files were modified or added during the build process"
                echo "$FILES_MODIFIED"
                echo "This will likely prevent successful publishing. Please run the build locally and include these changes in your pull request)"
                exit 1
            fi

I got

Error: ERROR IN CONFIG FILE:
[#/jobs/check-if-there-is-change] 0 subschemas matched instead of one

  1. [#/jobs/check-if-there-is-change] only 1 subschema matches out of 2
    | 1. [#/jobs/check-if-there-is-change/steps/0] 0 subschemas matched instead of one
    | | 1. [#/jobs/check-if-there-is-change/steps/0] 3 schema violations found
    | | | when/unless step
    | | | 1. [#/jobs/check-if-there-is-change/steps/0] extraneous key [command] is not permitted
    | | | | when/unless step
    | | | | Permitted keys:
    | | | | - when
    | | | | - unless
    | | | 2. [#/jobs/check-if-there-is-change/steps/0] extraneous key [name] is not permitted
    | |

why?