BEGIN; SET ROLE epistemics_role; CREATE TABLE IF NOT EXISTS epistemics.truth_bundles ( bundle_id TEXT PRIMARY KEY, source_id TEXT NOT NULL, source_kind TEXT NOT NULL, source_locator TEXT NOT NULL, source_title TEXT NOT NULL, source_publisher TEXT NOT NULL, snapshot_id TEXT NOT NULL, snapshot_source_id TEXT NOT NULL, snapshot_content_digest TEXT NOT NULL, snapshot_captured_at_unix_millis BIGINT NOT NULL, snapshot_freshness TEXT NOT NULL, excerpt_id TEXT NOT NULL, excerpt_snapshot_id TEXT NOT NULL, excerpt_text TEXT NOT NULL, excerpt_start BIGINT NOT NULL, excerpt_end BIGINT NOT NULL, observation_id TEXT NOT NULL, observation_observed_at_unix_millis BIGINT NOT NULL, claim_id TEXT NOT NULL, claim_statement TEXT NOT NULL, claim_observation_id TEXT NOT NULL, claim_citation_id TEXT NOT NULL, claim_verification TEXT NOT NULL, belief_id TEXT NOT NULL, belief_claim_id TEXT NOT NULL, belief_state TEXT NOT NULL, citation_id TEXT NOT NULL, citation_excerpt_id TEXT NOT NULL, citation_evidence TEXT NOT NULL, citation_coverage TEXT NOT NULL, citation_conflict TEXT NOT NULL, citation_resolved_at_unix_millis BIGINT NOT NULL, recorded_at_unix_millis BIGINT NOT NULL, UNIQUE (snapshot_id, excerpt_id, claim_id), CHECK (bundle_id <> ''), CHECK (source_id <> ''), CHECK (source_locator <> ''), CHECK (excerpt_start >= 0), CHECK (excerpt_end >= excerpt_start), CHECK (recorded_at_unix_millis > 0) ); CREATE INDEX IF NOT EXISTS truth_bundles_source_time_idx ON epistemics.truth_bundles (source_id, recorded_at_unix_millis DESC); RESET ROLE; COMMIT;