/-!
# Prelude —— System 层共享标识符

平台层反复引用一组标识符(项目、run、session、principal)。它们的内部表示从未被决策
(UUID / 复合键、principal 的子类型学),也不是分歧点,所以收成 opaque 载体
`Identifiers`,System 各模块在它之上参数化——契约谈得了"锁 owner 是哪个 run"这类关系,
不对标识符表示作承诺。
-/

namespace Spec.System

/-- System 层标识符载体:关系已定,各字段表示 OPEN。 -/
structure Identifiers where
  /-- 课程项目标识(聚合根;表示 OPEN)。 -/
  ProjectId : Type
  /-- 一次 Claude 任务的标识(锁的 owner、审计主体;表示 OPEN)。 -/
  RunId : Type
  /-- 长生命周期 Claude 会话标识(跨多 run 复用,ADR-0002;表示 OPEN)。 -/
  SessionId : Type
  /-- 权限主体标识(表示 OPEN)。 -/
  Principal : Type

end Spec.System
