public function getTypeChildren(
        $repositoryId,
        $typeId = null,
        $includePropertyDefinitions = false,
        $maxItems = null,
        $skipCount = 0,
        ExtensionDataInterface $extension = null
    ) {
        $url = $this->getRepositoryUrl($repositoryId, Constants::SELECTOR_TYPE_CHILDREN);
        $url->getQuery()->modify(
            [
                Constants::PARAM_PROPERTY_DEFINITIONS => $includePropertyDefinitions ? 'true' : 'false',
                Constants::PARAM_SKIP_COUNT => $skipCount,
                Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat()
            ]
        );

        if ($typeId !== null) {
            $url->getQuery()->modify([Constants::PARAM_TYPE_ID => $typeId]);
        }

        if ($maxItems !== null) {
            $url->getQuery()->modify([Constants::PARAM_MAX_ITEMS => $maxItems]);
        }

        $responseData = (array) $this->readJson($url);

        return $this->getJsonConverter()->convertTypeChildren($responseData);
    }