<?php
/**
 * Contract for a settings page section.
 *
 * @package PDFDraft_WooCommerce
 */

namespace PDFDraft\Woocommerce\Admin\Settings;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Each settings section must implement this interface so the Registry
 * can collect sidebar items and localized data in a uniform way.
 */
interface SectionInterface {

	/**
	 * Unique slug used to identify this section (must be URL-safe).
	 *
	 * @return string
	 */
	public function getKey(): string;

	/**
	 * Human-readable label shown in the sidebar navigation.
	 *
	 * @return string
	 */
	public function getLabel(): string;

	/**
	 * Extra data that will be merged into the localized JS object
	 * (e.g. select options, feature flags, defaults).
	 *
	 * @return array<string, mixed>
	 */
	public function getLocalizedData(): array;
}
