code: private function guardDefault($default)
      {
          if ($this->isASingleValue()) {
              $this->guardValue($default);
              return;
          }
  
          Assertion::nullOrIsArray($default, sprintf('Field [%s] default must be an array.', $this->name));
          if (null === $default) {
              return;
          }
  
          if ($this->isAMap()) {
              Assertion::true(
                  ArrayUtils::isAssoc($default),
                  sprintf('Field [%s] default must be an associative array.', $this->name)
              );
          }
  
          foreach ($default as $k => $v) {
              Assertion::notNull($v, sprintf('Field [%s] default for key [%s] cannot be null.', $this->name, $k));
              $this->guardValue($v);
          }
      }
docs: @param mixed $default
  
  @throws AssertionFailed
  @throws \Exception