{ "table": "model_snapshots", "generated_by": "scripts/generate-schema-contract.js", "derived_from": "supabase/migrations/*.sql applied in order to a disposable postgres:15-alpine", "note": "Insertable columns only (no generated/identity columns). This is the contract the retention writer must satisfy. Regenerate after any migration that touches model_snapshots; scripts/verify-schema-contract.js detects drift against a live database.", "known_production_drift": { "columns_in_production_not_in_migrations": [ "quarantine_reason", "re_settled_at", "settlement_source" ], "explanation": "Present in production but not created by any committed migration - added out of band, same class as the migration-014 debt. The contract deliberately uses the MIGRATION-derived set, which is the stricter of the two: a writer that stays within it is valid against both.", "classification": "PROD-ONLY COLUMN -> DRIFT WARNING / RECORDED DEBT (not release-authorized)" }, "column_count": 64, "columns": [ "actual_value", "archetype", "book", "book_odds", "canonical_event_id", "captured_at", "chain_shadow", "change_type", "claim_digest", "claim_schema_version", "code_sha", "confidence", "confidence_basis", "created_at", "cycle_hour_utc", "devig_method", "digest_algorithm_version", "edge_pct", "ev_pct", "event_identity_method", "event_identity_source", "event_identity_version", "event_occurrence", "factor_inputs", "fair_odds", "fair_prob", "features", "game_date", "game_id", "grade", "grade_11", "id", "line", "lineage_action", "lineage_state", "lineage_version", "model_version", "opponent", "outcome", "over_odds", "overround", "p_win", "player_key", "player_name", "projection", "publication_id", "published", "published_at", "read_id", "read_natural_key", "recaptures_id", "refusal_reason", "refused", "revision_ordinal", "settled_at", "side", "snapshot_id", "sport", "stat", "supersedes_id", "takeable", "team", "under_odds", "value" ], "authority": "RELEASE-AUTHORIZED model_snapshots INSERT CONTRACT", "authority_note": "Derived from the migration chain, which is the release authority. Production is not. A column present in production but in no migration is DRIFT / RECORDED DEBT and is NOT release-authorized; it must never be copied into this contract from live schema." }