<?php

declare(strict_types=1);

namespace PpPhp\Core\Platform\Catalog\Contracts;

use PpPhp\Core\Platform\Identity\PlatformIdentity;
use PpPhp\Core\Platform\Metadata\ValueObjects\PlatformDescriptor;
use PpPhp\Core\Platform\Metadata\ValueObjects\PlatformMetadata;

interface CatalogDefinitionInterface
{
    public function identity(): PlatformIdentity;

    public function metadata(): PlatformMetadata;

    public function descriptor(): ?PlatformDescriptor;

    public function defaults(): array;

    public function renderer(): ?string;
}
