code: public function property($name)
      {
          $this->typeCheck->property(func_get_args());
  
          foreach ($this->properties() as $property) {
              if ($property->name() === $name) {
                  return $property;
              }
          }
  
          throw new Exception\UndefinedPropertyException($this->className(), $name);
      }
docs: @param string $name
  
  @return PropertyDefinition