LOGIC OR NOT P040 — PM Project State — v0.1.1 schema_version: 2 state_version: 1 previous_state_ref: NONE state_status: CURRENT | PROPOSED | CONFLICT authority_ref: UNKNOWN updated_at: UNKNOWN updated_by: UNKNOWN project_id: project_name: purpose: intended_outcome: scope_current: baseline_current: effective_from: source_decision_ref: milestones: [] budget_or_constraints: [] baseline_history: [] current_phase: current_status: status_as_of: status_source_refs: [] risk_issue_records: - id: type: RISK | ISSUE status: OPEN | WATCH | CLOSED statement: evidence_status: FACT | OBSERVATION | HYPOTHESIS | UNKNOWN source_refs: [] owner_or_authority: gate_impact: dependency_records: - id: status: OPEN | SATISFIED | BLOCKED | UNKNOWN statement: source_refs: [] owner_or_authority: gate_impact: decision_records: - id: status: PROPOSED | ADOPTED | REJECTED | SUPERSEDED decision: authority_ref: decided_at: supersedes_ref: source_refs: [] change_records: [] stakeholders_authorities: [] current_artifacts_versions: [] next_gate: next_safe_action: WRITE RULE Material update requires expected_state_version == current state_version. On successful write: preserve history/lineage and increment exactly once. Otherwise CONFLICT / RELOAD / RECONCILE.