=== Re{code} Object Identifier ===
Contributors: recodecommerce
Tags: identifier, permalinks, media, catalog, api
Requires at least: 5.9
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Permanent, CMS-independent public identifiers for any WordPress object — decoupled from post_id, attachment_id and product_id.

== Description ==

Re{code} Object Identifier introduces a permanent public identifier layer on top of WordPress.

Instead of referencing content by post_id / attachment_id / product_id — all of which can change on
import, migration or re-upload — every object gets a stable identifier (e.g. `93154652`) stored in a
meta field. That identifier becomes the canonical public reference for the object, and is meant to
stay valid even if the site later moves off WordPress entirely.

This is the base of the plugin: settings only. It defines *how* identifiers are stored and *which*
public routes will resolve them. The routes themselves (`/art/{id}`, `/media/{id}`, `/embed/{id}`,
`/api/{id}`) are implemented in a following version.

= Settings (Settings → Object Identifier) =

* **Meta key** — the meta field that stores the identifier (default `object_uid`).
* **Legacy meta keys** — comma-separated fallback keys checked if the primary key is empty, to ease
  migration from an existing field (e.g. `inventory_number`).
* **Identifier pattern** — the regex character class used to recognize identifiers in public routes.
* **Post types to scan** — which post types (including `attachment` and, if active, WooCommerce
  `product`) are searched when resolving an identifier.
* **Route slugs** — configurable `/art/`, `/media/`, `/embed/`, `/api/` prefixes, each independently
  toggled on/off.

== Changelog ==

= 1.0.0 =
* Initial base: plugin bootstrap, settings page, option storage/sanitization.
