"""schema_versions.py — central registry of every persisted-contract
schema_version constant.

Per Tenet 3 (Deprecation-Safe). Bump a constant ONLY when a load-bearing
field is renamed/removed/retyped on the persisted shape. Adding fields
is forward-compatible (existing schema_version stays).

History:
    SIDECAR_SCHEMA_VERSION:        v1 (CP-3 era)
    PASS_STORE_SCHEMA_VERSION:     v1 (PHASE A)
    EXECUTION_STORE_SCHEMA_VERSION: v1 (PHASE A)
    RENDER_SCHEMA_VERSION:          v1 (PHASE A — for the persisted subset of
                                      pipeline/lib/render_schema.py BaseModel classes)
    AUDIT_RECORD_SCHEMA_VERSION:    v1 (PHASE A — engine-memory subrepo)
    VERDICT_SCHEMA_VERSION:         v1 (PHASE A — workspace/verdict.py per-take
                                      JSON sidecar shape; independent of
                                      SIDECAR_SCHEMA_VERSION because verdicts
                                      carry an editorial taxonomy + sub-tags
                                      contract that has its own evolution path)
    SCENE_VERSIONS_MANIFEST_SCHEMA_VERSION: v1 (REC-231 — per-batch
                                      ep_NNN_BATCH_NNN.versions.json approval-pointer
                                      manifest; OWN constant so the manifest evolves
                                      independently of SCENE_SCHEMA_VERSION)
"""

from __future__ import annotations

SIDECAR_SCHEMA_VERSION: int = 1
PASS_STORE_SCHEMA_VERSION: int = 1
EXECUTION_STORE_SCHEMA_VERSION: int = 1
RENDER_SCHEMA_VERSION: int = 1
AUDIT_RECORD_SCHEMA_VERSION: int = 1
VERDICT_SCHEMA_VERSION: int = 1
SCENE_SCHEMA_VERSION: int = 1
SCENE_VERSIONS_MANIFEST_SCHEMA_VERSION: int = 1

__all__ = [
    "SIDECAR_SCHEMA_VERSION",
    "PASS_STORE_SCHEMA_VERSION",
    "EXECUTION_STORE_SCHEMA_VERSION",
    "RENDER_SCHEMA_VERSION",
    "AUDIT_RECORD_SCHEMA_VERSION",
    "VERDICT_SCHEMA_VERSION",
    "SCENE_SCHEMA_VERSION",
    "SCENE_VERSIONS_MANIFEST_SCHEMA_VERSION",
]
