protected function getDefinition(): Definition
    {
        if (isset(self::$definitions[static::class])) {
            return self::$definitions[static::class];
        }

        $definition = new Definition();

        $this->buildDefinition($definition);

        return self::$definitions[static::class] = $definition;
    }