<?php
/**
 * Partial Google-oriented structured-data checks, reviewed 2026-07-12.
 *
 * @package SEOvaultSEO\Schema\Validation\Data
 */

return array(
	'version'    => '2026.07.1',
	'checked_at' => '2026-07-12',
	'rules'      => array(
		'Article'             => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/article',
			'completeness' => 'partial',
			'recommended'  => array( 'headline', 'image', 'author' ),
		),
		'NewsArticle'         => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/article',
			'completeness' => 'partial',
			'recommended'  => array( 'headline', 'image', 'author' ),
		),
		'BlogPosting'         => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/article',
			'completeness' => 'partial',
			'recommended'  => array( 'headline', 'image', 'author' ),
		),
		'Product'             => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/product-snippet',
			'completeness' => 'partial',
			'required'     => array( 'name' ),
			'any_of'       => array(
				array(
					'properties' => array( 'review', 'aggregateRating', 'offers' ),
					'code'       => 'review_or_offer',
					'severity'   => 'error',
				),
			),
			'recommended'  => array( 'image' ),
		),
		'Recipe'              => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/recipe',
			'completeness' => 'partial',
			'required'     => array( 'name', 'image' ),
			'recommended'  => array( 'author', 'recipeInstructions' ),
		),
		'Event'               => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/event',
			'completeness' => 'partial',
			'required'     => array( 'name', 'startDate', 'location' ),
			'recommended'  => array( 'image', 'description', 'offers' ),
		),
		'JobPosting'          => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/job-posting',
			'completeness' => 'partial',
			'required'     => array( 'title', 'description', 'datePosted', 'hiringOrganization' ),
			'any_of'       => array(
				array(
					'properties' => array( 'jobLocation', 'jobLocationType' ),
					'code'       => 'location_or_remote_type',
					'severity'   => 'warning',
				),
			),
		),
		'SoftwareApplication' => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/software-app',
			'completeness' => 'partial',
			'required'     => array( 'name', 'offers.price' ),
		),
		'BreadcrumbList'      => array(
			'source_url'   => 'https://developers.google.com/search/docs/appearance/structured-data/breadcrumb',
			'completeness' => 'partial',
			'required'     => array( 'itemListElement' ),
		),
		// FAQPage: Schema.org type is supported; Google FAQ rich results are limited.
		// Intentionally no required/recommended Google property gates — structural
		// readiness is enforced by FaqPageStructureRule / block readiness, and the UI
		// must not market FAQ as a guaranteed rich result.
		'FAQPage'             => array(
			'source_url'            => 'https://developers.google.com/search/docs/appearance/structured-data/faqpage',
			'schema_org_url'        => 'https://schema.org/FAQPage',
			'completeness'          => 'partial',
			'google_support_status' => 'limited',
		),
		// HowTo: Schema.org type remains valid; Google removed How-to rich results (Sept 2023).
		// Structural readiness is enforced by HowToStructureRule / block readiness.
		'HowTo'               => array(
			'source_url'            => 'https://schema.org/HowTo',
			'schema_org_url'        => 'https://schema.org/HowTo',
			'completeness'          => 'partial',
			'google_support_status' => 'unsupported',
		),
	),
);
