Compatibility Matrix
====================

UUID Support
------------

- ``v1``, ``v3``, ``v4``, ``v5``: RFC 4122 / RFC 9562 compatible layouts.
- ``v6``, ``v7``: RFC 9562 time-ordered UUIDs.
- ``v8``: custom payload strategy inside UUID v8 envelope.
- ``guid()``: Microsoft-compatible GUID text formatting helper.

Non-UUID Families
-----------------

- ULID: Crockford Base32 ULID with monotonic and random modes.
- Snowflake: 64-bit Twitter-style ID (41/5/5/12).
- Sonyflake: 64-bit Sonyflake-style ID (39/16/8).
- Randflake: lease-bound encrypted 64-bit ID (30/17/17 before encryption).
- TBSL: project-specific time-based sortable hex identifier.
- NanoID and CUID2: URL-safe random IDs.
- KSUID and XID: sortable short ID families.

Algorithm Interface
-------------------

``NanoID``, ``CUID2``, ``KSUID``, and ``XID`` implement
``Infocyph\\UID\\Contracts\\IdAlgorithmInterface`` with:

- ``generate()``
- ``isValid()``
- ``parse()``

Binary and Alternate Encodings
------------------------------

- UUID / ULID / TBSL: ``toBytes()`` / ``fromBytes()``.
- UUID / ULID / Snowflake / Sonyflake / TBSL: ``toBase()`` / ``fromBase()``.
- Randflake: ``toBytes()`` / ``fromBytes()`` and ``toBase()`` / ``fromBase()``.
- KSUID / XID: ``toBytes()`` / ``fromBytes()``.
- Shared byte-level encoder: ``Infocyph\\UID\\Support\\BaseEncoder``.
- Supported bases: ``16``, ``32``, ``36``, ``58``, ``62``.

Runtime Requirements
--------------------

- Minimum PHP: ``8.2``
- Required extension: ``ext-bcmath``
- Optional sequence backends: filesystem, in-memory, PSR-16 cache, callback.
