<?php

declare(strict_types=1);

namespace App\Framework\Core\ValueObjects\StructuredData;

/**
 * Structured Data Value Object (Schema.org Base)
 *
 * Base interface for all Schema.org structured data types.
 * Provides JSON-LD serialization for search engine consumption.
 *
 * @see https://schema.org/
 * @psalm-immutable
 */
interface StructuredData
{
    /**
     * Convert to JSON-LD array representation
     *
     * @return array<string, mixed>
     */
    public function toJsonLd(): array;

    /**
     * Render as JSON-LD script tag
     */
    public function toScript(): string;
}
