A minimal, fully attested Intent that conforms — the base for mutation.
()
| 488 | |
| 489 | /// A minimal, fully attested Intent that conforms — the base for mutation. |
| 490 | fn attested_base() -> CanonicalNode { |
| 491 | let kp = KeyPair::generate(); |
| 492 | let id = Identity::new("lee", &kp); |
| 493 | let node = CanonicalNode { |
| 494 | context: CONTEXT_URL.to_string(), |
| 495 | type_: NodeType::Intent.as_str().to_string(), |
| 496 | id: "urn:atomic:intent:gate-1".to_string(), |
| 497 | human_key: "GATE-1".to_string(), |
| 498 | title: "Gate base".to_string(), |
| 499 | status: "todo".to_string(), |
| 500 | kind: default_kind(), |
| 501 | priority: None, |
| 502 | view: None, |
| 503 | motivated_by: None, |
| 504 | informed_by: Vec::new(), |
| 505 | has_acceptance_criterion: Vec::new(), |
| 506 | has_task: Vec::new(), |
| 507 | has_scope_in: Vec::new(), |
| 508 | has_scope_out: Vec::new(), |
| 509 | has_constraint: Vec::new(), |
| 510 | depends_on: Vec::new(), |
| 511 | why: Some("a reason".to_string()), |
| 512 | content_hash: None, |
| 513 | attributed_to: None, |
| 514 | created_at: "2026-06-25T00:00:00Z".to_string(), |
| 515 | proof: None, |
| 516 | }; |
| 517 | proof::attest(node, &id, &kp) |
| 518 | } |
| 519 | |
| 520 | /// A `:::ref{edge=reviews}` targeting another intent. |
| 521 | fn reviews_ref(target: &str) -> Ref { |