=== LLF Schema ===
Contributors: jaredswanson
Tags: schema, json-ld, seo, legal
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 8.2
Stable tag: 0.2.0
License: GPL-2.0-or-later

Emits JSON-LD schema (Article, ProfilePage, Person, LocalBusiness, LegalService) for LLF law firm sites. Multi-site (SDD/PLD) via ACF config.

== Description ==
Custom schema emitter for LLF National Law Firm sites. Reads firm/office/attorney/post data from ACF and emits a validated single-graph JSON-LD payload via StandaloneHost (wp_head hook). Coexists with Yoast SEO (Yoast schema module disabled). Multi-site support via per-site ACF Options page. 193 tests, 461 assertions.

== Changelog ==

= 0.2.0 =
* Per-office LegalService schema on office pages
* Non-HQ office pages emit exactly 2 nodes: WebPage (about→#location-<cityKey>) + LegalService (#location-<key>)
* HQ office page output unchanged: WebPage (about→#legalservice) + LegalService (#legalservice)
* LocalBusinessPiece activated: fires on non-HQ office pages only
* LegalServicePiece gating: office pages fire only when queried id === hqOfficeId
* IdMinter::location($cityKey) helper added
* Office VO gains cityKey property (computed from sanitize_title($city) in OfficeRepository)

= 0.1.5 =
* Schema realignment: ProfilePage.isPartOf removed, inline Person reviewedBy, worksFor→#legalservice, attorney PersonSchemaBuilder consolidated
* Deploy-gate test harness (scripts/test-deploy.sh)
